package com.fw.ui.view.profile;

import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROTOTYPE;

import java.util.Arrays;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;

import com.fw.service.bean.EntryBean;
import com.fw.service.formvalidator.FormValidatorService;
import com.fw.service.merchantprofile.bean.MerchantProfileBean;
import com.fw.ui.bao.MasterDataBAO;
import com.fw.ui.bao.MessageBAO;
import com.fw.ui.bao.PropertyBAO;
import com.fw.ui.core.ViewDescription;
import com.fw.ui.util.UICommonUtils;
import com.fw.ui.util.VaadinApplicationObjectSupport;
import com.fw.ui.util.validator.StringLengthValidator;
import com.fw.ui.view.AbstractView;
import com.fw.ui.view.profile.merchant.event.CreateMerchantProfileCancelButtonClickListener;
import com.fw.ui.view.profile.merchant.event.CreateMerchantProfileClearButtonClickListener;
import com.fw.ui.view.profile.merchant.event.CreateMerchantProfileSaveButtonClickListener;
import com.fw.ui.view.profile.merchant.event.CreateMerchantProfileUploadButtonClickListener;
import com.vaadin.data.validator.RegexpValidator;
import com.vaadin.shared.ui.combobox.FilteringMode;
import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.Alignment;
import com.vaadin.ui.Button;
import com.vaadin.ui.CheckBox;
import com.vaadin.ui.ComboBox;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Image;
import com.vaadin.ui.Label;
import com.vaadin.ui.Panel;
import com.vaadin.ui.TextArea;
import com.vaadin.ui.TextField;
import com.vaadin.ui.Upload;
import com.vaadin.ui.VerticalLayout;

@org.springframework.stereotype.Component
@Scope(SCOPE_PROTOTYPE)
@ViewDescription(name = "profile-merchant-create", path = "/profile/merchant/create")
public class CreateMerchantProfileView extends AbstractView {

    /**
     * 
     */
    private static final long serialVersionUID = 252348638703410597L;

    @Autowired
    protected transient VaadinApplicationObjectSupport app;

    @Autowired
    private MasterDataBAO masterDataBAO;
    @Autowired
    private MessageBAO messageBAO;
    @Autowired
    private PropertyBAO propertyBAO;

    /**
     * BEAN
     */
    private MerchantProfileBean MerchantProfileBean = new MerchantProfileBean();
    /**
     * EVENT
     */
    @Autowired
    private CreateMerchantProfileSaveButtonClickListener createMerchantProfileSaveButtonClickListener;
    @Autowired
    private CreateMerchantProfileClearButtonClickListener createMerchantProfileClearButtonClickListener;
    @Autowired
    private CreateMerchantProfileCancelButtonClickListener createMerchantProfileCancelButtonClickListener;
    @Autowired
    private CreateMerchantProfileUploadButtonClickListener createMerchantProfileUploadButtonClickListener;

    /**
     * COMPONENT
     */
    private Panel createMerchantProfilePanel = new Panel();
    private Panel merchantInformationPanel = new Panel();
    private Panel merchantGroupContactPersonPanel = new Panel();

    private Label lblMerchantLogoHint = new Label("", ContentMode.HTML);
    private Label lblMerchantLogo = new Label("", ContentMode.HTML);
    private Label lblMerchantId = new Label("", ContentMode.HTML);
    private Label lblStatus = new Label("", ContentMode.HTML);
    private Label lblMerchantNameEn = new Label("", ContentMode.HTML);
    private Label lblCompanyNameEn = new Label("", ContentMode.HTML);
    private Label lblMerchantNameTh = new Label("", ContentMode.HTML);
    private Label lblCompanyNameTh = new Label("", ContentMode.HTML);
    private Label lblMerchantServiceType = new Label("", ContentMode.HTML);
    private Label lblMCCCode = new Label("", ContentMode.HTML);
    private Label lblStatementName = new Label("", ContentMode.HTML);
    private Label lblBusinessRegistrationNumber = new Label("", ContentMode.HTML);
    private Label lblCountryRegion = new Label("", ContentMode.HTML);
    private Label lblCountryDomicile = new Label("", ContentMode.HTML);
    private Label lblMailingAddress = new Label("", ContentMode.HTML);
    private Label lblBusinessAddress = new Label("", ContentMode.HTML);
    private Label lblFaxNumber = new Label("", ContentMode.HTML);
    private Label lblUrl = new Label("", ContentMode.HTML);
    private Label lblEnquiryNumber = new Label("", ContentMode.HTML);
    private Label lblTaxId = new Label("", ContentMode.HTML);
    private Label lblIsTestMerchant = new Label("", ContentMode.HTML);
    private Label lblBlank = new Label("", ContentMode.HTML);

    private Label lblProjectTitle = new Label("", ContentMode.HTML);
    private Label lblProjectContactName = new Label("", ContentMode.HTML);
    private Label lblProjectContactEmailAddress = new Label("", ContentMode.HTML);
    private Label lblProjectContactPhone = new Label("", ContentMode.HTML);
    private Label lblProjectContactMobile = new Label("", ContentMode.HTML);

    private Label lblOperationTitle = new Label("", ContentMode.HTML);
    private Label lblOperationContactName = new Label("", ContentMode.HTML);
    private Label lblOperationContactEmailAddress = new Label("", ContentMode.HTML);
    private Label lblOperationContactPhone = new Label("", ContentMode.HTML);
    private Label lblOperationContactMobile = new Label("", ContentMode.HTML);

    private Label lblTechnicalTitle = new Label("", ContentMode.HTML);
    private Label lblTechnicalContactName = new Label("", ContentMode.HTML);
    private Label lblTechnicalContactEmailAddress = new Label("", ContentMode.HTML);
    private Label lblTechnicalContactPhone = new Label("", ContentMode.HTML);
    private Label lblTechnicalContactMobile = new Label("", ContentMode.HTML);

    private Label lblFinancialTitle = new Label("", ContentMode.HTML);
    private Label lblFinancialContactName = new Label("", ContentMode.HTML);
    private Label lblFinancialContactEmailAddress = new Label("", ContentMode.HTML);
    private Label lblFinancialContactPhone = new Label("", ContentMode.HTML);
    private Label lblFinancialContactMobile = new Label("", ContentMode.HTML);

    private Image imgMerchantLogo = new Image();
    private Upload ulMerchantLogo = new Upload();
    private TextField txtMerchantId = new TextField();
    private ComboBox cbbStatus = new ComboBox();
    private TextField txtMerchantNameEn = new TextField();
    private TextField txtCompanyNameEn = new TextField();
    private TextField txtMerchantNameTh = new TextField();
    private TextField txtCompanyNameTh = new TextField();
    private ComboBox cbbMerchantServiceType = new ComboBox();
    private ComboBox cbbMCCCode = new ComboBox();
    private TextField txtStatementName = new TextField();
    private TextField txtBusinessRegistrationNumber = new TextField();
    private ComboBox cbbCountryRegion = new ComboBox();
    private ComboBox cbbCountryDomicile = new ComboBox();
    private TextField txtMailingAddress = new TextField();
    private TextField txtBusinessAddress = new TextField();
    private TextField txtFaxNumber = new TextField();
    private TextField txtUrl = new TextField();
    private TextField txtEnquiryNumber = new TextField();
    private TextField txtTaxId = new TextField();
    private CheckBox cbIsTestMerchant = new CheckBox();

    private TextField txtProjectContactName = new TextField();
    private TextArea txtProjectContactEmailAddress = new TextArea();
    private TextField txtProjectContactPhone = new TextField();
    private TextField txtProjectContactMobile = new TextField();

    private TextField txtOperationContactName = new TextField();
    private TextArea txtOperationContactEmailAddress = new TextArea();
    private TextField txtOperationContactPhone = new TextField();
    private TextField txtOperationContactMobile = new TextField();

    private TextField txtTechnicalContactName = new TextField();
    private TextArea txtTechnicalContactEmailAddress = new TextArea();
    private TextField txtTechnicalContactPhone = new TextField();
    private TextField txtTechnicalContactMobile = new TextField();

    private TextField txtFinancialContactName = new TextField();
    private TextArea txtFinancialContactEmailAddress = new TextArea();
    private TextField txtFinancialContactPhone = new TextField();
    private TextField txtFinancialContactMobile = new TextField();

    private Label lblMerchantLogoValidateMessage = new Label("", ContentMode.HTML);
    private Label lblMerchantIdValidateMessage = new Label("", ContentMode.HTML);
    private Label lblStatusValidateMessage = new Label("", ContentMode.HTML);
    private Label lblMerchantNameValidateMessageEn = new Label("", ContentMode.HTML);
    private Label lblCompanyNameValidateMessageEn = new Label("", ContentMode.HTML);
    private Label lblMerchantNameValidateMessageTh = new Label("", ContentMode.HTML);
    private Label lblCompanyNameValidateMessageTh = new Label("", ContentMode.HTML);
    private Label lblMerchantServiceTypeValidateMessage = new Label("", ContentMode.HTML);
    private Label lblMCCCodeValidateMessage = new Label("", ContentMode.HTML);
    private Label lblStatementNameValidateMessage = new Label("", ContentMode.HTML);
    private Label lblBusinessRegistrationNumberValidateMessage = new Label("", ContentMode.HTML);
    private Label lblCountryRegionValidateMessage = new Label("", ContentMode.HTML);
    private Label lblCountryDomicileValidateMessage = new Label("", ContentMode.HTML);
    private Label lblMailingAddressValidateMessage = new Label("", ContentMode.HTML);
    private Label lblBusinessAddressValidateMessage = new Label("", ContentMode.HTML);
    private Label lblFaxNumberValidateMessage = new Label("", ContentMode.HTML);
    private Label lblUrlValidateMessage = new Label("", ContentMode.HTML);
    private Label lblEnquiryNumberValidateMessage = new Label("", ContentMode.HTML);
    private Label lblTaxIdValidateMessage = new Label("", ContentMode.HTML);
    private Label lblIsTestMerchantValidateMessage = new Label("", ContentMode.HTML);
    private Label lblBlankValidateMessage = new Label("", ContentMode.HTML);

    private Label lblProjectContactNameValidateMessage = new Label("", ContentMode.HTML);
    private Label lblProjectContactEmailAddressValidateMessage = new Label("", ContentMode.HTML);
    private Label lblProjectContactPhoneValidateMessage = new Label("", ContentMode.HTML);
    private Label lblProjectContactMobileValidateMessage = new Label("", ContentMode.HTML);

    private Label lblOperationContactNameValidateMessage = new Label("", ContentMode.HTML);
    private Label lblOperationContactEmailAddressValidateMessage = new Label("", ContentMode.HTML);
    private Label lblOperationContactPhoneValidateMessage = new Label("", ContentMode.HTML);
    private Label lblOperationContactMobileValidateMessage = new Label("", ContentMode.HTML);

    private Label lblTechnicalContactNameValidateMessage = new Label("", ContentMode.HTML);
    private Label lblTechnicalContactEmailAddressValidateMessage = new Label("", ContentMode.HTML);
    private Label lblTechnicalContactPhoneValidateMessage = new Label("", ContentMode.HTML);
    private Label lblTechnicalContactMobileValidateMessage = new Label("", ContentMode.HTML);

    private Label lblFinancialContactNameValidateMessage = new Label("", ContentMode.HTML);
    private Label lblFinancialContactEmailAddressValidateMessage = new Label("", ContentMode.HTML);
    private Label lblFinancialContactPhoneValidateMessage = new Label("", ContentMode.HTML);
    private Label lblFinancialContactMobileValidateMessage = new Label("", ContentMode.HTML);

    private HorizontalLayout layoutLogo = new HorizontalLayout();
    private HorizontalLayout layoutLogoValidate = new HorizontalLayout();
    private HorizontalLayout layoutMerchantIdValidate = new HorizontalLayout();
    private HorizontalLayout layoutStatusValidate = new HorizontalLayout();
    private HorizontalLayout layoutMerchantNameValidateEn = new HorizontalLayout();
    private HorizontalLayout layoutCompanyNameValidateEn = new HorizontalLayout();
    private HorizontalLayout layoutMerchantNameValidateTh = new HorizontalLayout();
    private HorizontalLayout layoutCompanyNameValidateTh = new HorizontalLayout();
    private HorizontalLayout layoutMerchantServiceTypeValidate = new HorizontalLayout();
    private HorizontalLayout layoutMCCCodeValidate = new HorizontalLayout();
    private HorizontalLayout layoutStatementNameValidate = new HorizontalLayout();
    private HorizontalLayout layoutBusinessRegistrationNumberValidate = new HorizontalLayout();
    private HorizontalLayout layoutCountryRegionValidate = new HorizontalLayout();
    private HorizontalLayout layoutCountryDomicileValidate = new HorizontalLayout();
    private HorizontalLayout layoutMailingAddressValidate = new HorizontalLayout();
    private HorizontalLayout layoutBusinessAddressValidate = new HorizontalLayout();
    private HorizontalLayout layoutFaxNumberValidate = new HorizontalLayout();
    private HorizontalLayout layoutUrlValidate = new HorizontalLayout();
    private HorizontalLayout layoutEnquiryNumberValidate = new HorizontalLayout();
    private HorizontalLayout layoutTaxIdValidate = new HorizontalLayout();
    private HorizontalLayout layoutIsTestMerchantValidate = new HorizontalLayout();
    private HorizontalLayout layoutBlankValidate = new HorizontalLayout();

    private HorizontalLayout layoutProjectContactNameValidate = new HorizontalLayout();
    private HorizontalLayout layoutProjectContactEmailAddressValidate = new HorizontalLayout();
    private HorizontalLayout layoutProjectContactPhoneValidate = new HorizontalLayout();
    private HorizontalLayout layoutProjectContactMobileValidate = new HorizontalLayout();

    private HorizontalLayout layoutOperationContactNameValidate = new HorizontalLayout();
    private HorizontalLayout layoutOperationContactEmailAddressValidate = new HorizontalLayout();
    private HorizontalLayout layoutOperationContactPhoneValidate = new HorizontalLayout();
    private HorizontalLayout layoutOperationContactMobileValidate = new HorizontalLayout();

    private HorizontalLayout layoutTechnicalContactNameValidate = new HorizontalLayout();
    private HorizontalLayout layoutTechnicalContactEmailAddressValidate = new HorizontalLayout();
    private HorizontalLayout layoutTechnicalContactPhoneValidate = new HorizontalLayout();
    private HorizontalLayout layoutTechnicalContactMobileValidate = new HorizontalLayout();

    private HorizontalLayout layoutFinancialContactNameValidate = new HorizontalLayout();
    private HorizontalLayout layoutFinancialContactEmailAddressValidate = new HorizontalLayout();
    private HorizontalLayout layoutFinancialContactPhoneValidate = new HorizontalLayout();
    private HorizontalLayout layoutFinancialContactMobileValidate = new HorizontalLayout();

    private Button btnSave = new Button();
    private Button btnClear = new Button();
    private Button btnCancel = new Button();

    @Override
    public void updateStrings() {
	createMerchantProfilePanel.setCaption(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.title"));
	merchantInformationPanel.setCaption(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.merchantInformationPanel.title"));
	merchantGroupContactPersonPanel.setCaption(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.merchantGroupContactPersonPanel.title"));

	lblMerchantLogoHint.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.merchantLogoHint"));
	lblMerchantLogo.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.merchantLogo"));
	lblMerchantId.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.merchantId"));
	lblStatus.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.status"));
	lblMerchantNameEn.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.merchantNameEN"));
	lblCompanyNameEn.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.companyNameEN"));
	lblMerchantNameTh.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.merchantNameTH"));
	lblCompanyNameTh.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.companyNameTH"));
	lblMerchantServiceType.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.merchantServiceType"));
	lblMCCCode.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.mccCode"));
	lblStatementName.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.statementName"));
	lblBusinessRegistrationNumber.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.businessRegistrationNumber"));
	lblCountryRegion.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.countryRegion"));
	lblCountryDomicile.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.countryDomicile"));
	lblMailingAddress.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.mailingAddress"));
	lblBusinessAddress.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.businessAddress"));
	lblFaxNumber.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.faxNumber"));
	lblUrl.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.url"));
	lblEnquiryNumber.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.enquiryNumber"));
	lblTaxId.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.taxId"));
	lblIsTestMerchant.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.isTestMerchant"));

	lblProjectTitle.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.contact.project"));
	lblProjectContactName.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.contact.name"));
	lblProjectContactEmailAddress.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.contact.email"));
	lblProjectContactPhone.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.contact.phone"));
	lblProjectContactMobile.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.contact.mobile"));

	lblOperationTitle.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.contact.operation"));
	lblOperationContactName.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.contact.name"));
	lblOperationContactEmailAddress.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.contact.email"));
	lblOperationContactPhone.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.contact.phone"));
	lblOperationContactMobile.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.contact.mobile"));

	lblTechnicalTitle.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.contact.technical"));
	lblTechnicalContactName.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.contact.name"));
	lblTechnicalContactEmailAddress.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.contact.email"));
	lblTechnicalContactPhone.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.contact.phone"));
	lblTechnicalContactMobile.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.contact.mobile"));

	lblFinancialTitle.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.contact.financial"));
	lblFinancialContactName.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.contact.name"));
	lblFinancialContactEmailAddress.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.contact.email"));
	lblFinancialContactPhone.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.contact.phone"));
	lblFinancialContactMobile.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.label.contact.mobile"));

	this.cbbStatus.setInputPrompt(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.inputprompt.status"));
	this.cbbMerchantServiceType.setInputPrompt(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.inputprompt.merchantServiceType"));
	this.cbbMCCCode.setInputPrompt(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.inputprompt.mccCode"));
	this.cbbCountryRegion.setInputPrompt(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.inputprompt.countryRegion"));
	this.cbbCountryDomicile.setInputPrompt(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.inputprompt.countryDomicile"));

	this.btnSave.setCaption(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.button.save"));
	this.btnClear.setCaption(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.button.clear"));
	this.btnCancel.setCaption(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.button.cancel"));
	this.ulMerchantLogo.setButtonCaption(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.button.upload"));
    }

    @Override
    public void init() {
	
	this.cbbCountryDomicile.setNewItemsAllowed(false);
	this.cbbCountryDomicile.setFilteringMode(FilteringMode.CONTAINS);
	
	this.cbbCountryRegion.setNewItemsAllowed(false);
	this.cbbCountryRegion.setFilteringMode(FilteringMode.CONTAINS);
	
	this.setSizeFull();

	this.createMerchantProfilePanel.setSizeFull();
	this.createMerchantProfilePanel.setId("createMerchantProfilePanel");

	merchantInformationPanel.setId("createMerchantProfilePanel");
	merchantInformationPanel.setSizeFull();
	merchantInformationPanel.addStyleName("panel-caption-small");

	merchantGroupContactPersonPanel.setId("merchantGroupContactPersonPanel");
	merchantGroupContactPersonPanel.setSizeFull();
	merchantGroupContactPersonPanel.addStyleName("panel-caption-small");

	lblMerchantLogoValidateMessage.setId("lblMerchantLogoValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblMerchantIdValidateMessage.setId("lblMerchantIdValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblStatusValidateMessage.setId("lblStatusValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblMerchantNameValidateMessageEn.setId("lblMerchantNameValidateMessageEn" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblCompanyNameValidateMessageEn.setId("lblCompanyNameValidateMessageEn" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblMerchantNameValidateMessageTh.setId("lblMerchantNameValidateMessageTh" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblCompanyNameValidateMessageTh.setId("lblCompanyNameValidateMessageTh" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblMerchantServiceTypeValidateMessage.setId("lblMerchantServiceTypeValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblMCCCodeValidateMessage.setId("lblMCCCodeValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblStatementNameValidateMessage.setId("lblStatementNameValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblBusinessRegistrationNumberValidateMessage.setId("lblBusinessRegistrationNumberValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblCountryRegionValidateMessage.setId("lblCountryRegionValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblCountryDomicileValidateMessage.setId("lblCountryDomicileValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblMailingAddressValidateMessage.setId("lblMailingAddressValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblBusinessAddressValidateMessage.setId("lblBusinessAddressValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblFaxNumberValidateMessage.setId("lblFaxNumberValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblUrlValidateMessage.setId("lblUrlValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblEnquiryNumberValidateMessage.setId("lblEnquiryNumberValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblTaxIdValidateMessage.setId("lblTaxIdValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblIsTestMerchantValidateMessage.setId("lblIsTestMerchantValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);

	lblProjectContactNameValidateMessage.setId("lblProjectContactNameValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblProjectContactEmailAddressValidateMessage.setId("lblProjectContactEmailAddressValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblProjectContactPhoneValidateMessage.setId("lblProjectContactPhoneValidateMessage.setId"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblProjectContactMobileValidateMessage.setId("lblProjectContactMobileValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);

	lblOperationContactNameValidateMessage.setId("lblOperationContactNameValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblOperationContactEmailAddressValidateMessage.setId("lblOperationContactEmailAddressValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblOperationContactPhoneValidateMessage.setId("lblOperationContactPhoneValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblOperationContactMobileValidateMessage.setId("lblOperationContactMobileValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);

	lblTechnicalContactNameValidateMessage.setId("lblTechnicalContactNameValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblTechnicalContactEmailAddressValidateMessage.setId("lblTechnicalContactEmailAddressValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblTechnicalContactPhoneValidateMessage.setId("lblTechnicalContactPhoneValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblTechnicalContactMobileValidateMessage.setId("lblTechnicalContactMobileValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);

	lblFinancialContactNameValidateMessage.setId("lblFinancialContactNameValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblFinancialContactEmailAddressValidateMessage.setId("lblFinancialContactEmailAddressValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblFinancialContactPhoneValidateMessage.setId("lblFinancialContactPhoneValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblFinancialContactMobileValidateMessage.setId("lblFinancialContactMobileValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);

	layoutLogoValidate.setId("layoutLogoValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutMerchantIdValidate.setId("layoutMerchantIdValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutStatusValidate.setId("layoutStatusValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutMerchantNameValidateEn.setId("layoutMerchantNameValidateEn" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutCompanyNameValidateEn.setId("layoutCompanyNameValidateEn" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutMerchantNameValidateTh.setId("layoutMerchantNameValidateTh" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutCompanyNameValidateTh.setId("layoutCompanyNameValidateTh" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutMerchantServiceTypeValidate.setId("layoutMerchantServiceTypeValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutMCCCodeValidate.setId("layoutMCCCodeValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutStatementNameValidate.setId("layoutStatementNameValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutBusinessRegistrationNumberValidate.setId("layoutBusinessRegistrationNumberValidate"
		+ UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutCountryRegionValidate.setId("layoutCountryRegionValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutCountryDomicileValidate.setId("layoutCountryDomicileValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutMailingAddressValidate.setId("layoutMailingAddressValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutBusinessAddressValidate.setId("layoutBusinessAddressValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutFaxNumberValidate.setId("layoutFaxNumberValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutUrlValidate.setId("layoutUrlValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutEnquiryNumberValidate.setId("layoutEnquiryNumberValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutTaxIdValidate.setId("layoutTaxIdValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutIsTestMerchantValidate.setId("layoutIsTestMerchantValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);

	layoutProjectContactNameValidate.setId("layoutProjectContactNameValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutProjectContactEmailAddressValidate.setId("layoutProjectContactEmailAddressValidate"
		+ UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutProjectContactPhoneValidate.setId("layoutProjectContactPhoneValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutProjectContactMobileValidate.setId("layoutProjectContactMobileValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);

	layoutOperationContactNameValidate.setId("layoutOperationContactNameValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutOperationContactEmailAddressValidate.setId("layoutOperationContactEmailAddressValidate"
		+ UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutOperationContactPhoneValidate.setId("layoutOperationContactPhoneValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutOperationContactMobileValidate.setId("layoutOperationContactMobileValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);

	layoutTechnicalContactNameValidate.setId("layoutTechnicalContactNameValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutTechnicalContactEmailAddressValidate.setId("layoutTechnicalContactEmailAddressValidate"
		+ UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutTechnicalContactPhoneValidate.setId("layoutTechnicalContactPhoneValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutTechnicalContactMobileValidate.setId("layoutTechnicalContactMobileValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);

	layoutFinancialContactNameValidate.setId("layoutFinancialContactNameValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutFinancialContactEmailAddressValidate.setId("layoutFinancialContactEmailAddressValidate"
		+ UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutFinancialContactPhoneValidate.setId("layoutFinancialContactPhoneValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutFinancialContactMobileValidate.setId("layoutFinancialContactMobileValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);

	lblMerchantLogoValidateMessage.setSizeUndefined();
	lblMerchantIdValidateMessage.setSizeUndefined();
	lblStatusValidateMessage.setSizeUndefined();
	lblMerchantNameValidateMessageEn.setSizeUndefined();
	lblCompanyNameValidateMessageEn.setSizeUndefined();
	lblMerchantNameValidateMessageTh.setSizeUndefined();
	lblCompanyNameValidateMessageTh.setSizeUndefined();
	lblMerchantServiceTypeValidateMessage.setSizeUndefined();
	lblMCCCodeValidateMessage.setSizeUndefined();
	lblStatementNameValidateMessage.setSizeUndefined();
	lblBusinessRegistrationNumberValidateMessage.setSizeUndefined();
	lblCountryRegionValidateMessage.setSizeUndefined();
	lblCountryDomicileValidateMessage.setSizeUndefined();
	lblMailingAddressValidateMessage.setSizeUndefined();
	lblBusinessAddressValidateMessage.setSizeUndefined();
	lblFaxNumberValidateMessage.setSizeUndefined();
	lblUrlValidateMessage.setSizeUndefined();
	lblEnquiryNumberValidateMessage.setSizeUndefined();
	lblTaxIdValidateMessage.setSizeUndefined();
	lblIsTestMerchantValidateMessage.setSizeUndefined();

	lblMerchantLogoValidateMessage.addStyleName("validate-error");
	lblMerchantIdValidateMessage.addStyleName("validate-error");
	lblStatusValidateMessage.addStyleName("validate-error");
	lblMerchantNameValidateMessageEn.addStyleName("validate-error");
	lblCompanyNameValidateMessageEn.addStyleName("validate-error");
	lblMerchantNameValidateMessageTh.addStyleName("validate-error");
	lblCompanyNameValidateMessageTh.addStyleName("validate-error");
	lblMerchantServiceTypeValidateMessage.addStyleName("validate-error");
	lblMCCCodeValidateMessage.addStyleName("validate-error");
	lblStatementNameValidateMessage.addStyleName("validate-error");
	lblBusinessRegistrationNumberValidateMessage.addStyleName("validate-error");
	lblCountryRegionValidateMessage.addStyleName("validate-error");
	lblCountryDomicileValidateMessage.addStyleName("validate-error");
	lblMailingAddressValidateMessage.addStyleName("validate-error");
	lblBusinessAddressValidateMessage.addStyleName("validate-error");
	lblFaxNumberValidateMessage.addStyleName("validate-error");
	lblUrlValidateMessage.addStyleName("validate-error");
	lblEnquiryNumberValidateMessage.addStyleName("validate-error");
	lblTaxIdValidateMessage.addStyleName("validate-error");
	lblIsTestMerchantValidateMessage.addStyleName("validate-error");

	lblProjectContactNameValidateMessage.addStyleName("validate-error");
	lblProjectContactEmailAddressValidateMessage.addStyleName("validate-error");
	lblProjectContactPhoneValidateMessage.addStyleName("validate-error");
	lblProjectContactMobileValidateMessage.addStyleName("validate-error");

	lblOperationContactNameValidateMessage.addStyleName("validate-error");
	lblOperationContactEmailAddressValidateMessage.addStyleName("validate-error");
	lblOperationContactPhoneValidateMessage.addStyleName("validate-error");
	lblOperationContactMobileValidateMessage.addStyleName("validate-error");

	lblTechnicalContactNameValidateMessage.addStyleName("validate-error");
	lblTechnicalContactEmailAddressValidateMessage.addStyleName("validate-error");
	lblTechnicalContactPhoneValidateMessage.addStyleName("validate-error");
	lblTechnicalContactMobileValidateMessage.addStyleName("validate-error");

	lblFinancialContactNameValidateMessage.addStyleName("validate-error");
	lblFinancialContactEmailAddressValidateMessage.addStyleName("validate-error");
	lblFinancialContactPhoneValidateMessage.addStyleName("validate-error");
	lblFinancialContactMobileValidateMessage.addStyleName("validate-error");

	layoutLogoValidate.setVisible(false);
	layoutMerchantIdValidate.setVisible(false);
	layoutStatusValidate.setVisible(false);
	layoutMerchantNameValidateEn.setVisible(false);
	layoutCompanyNameValidateEn.setVisible(false);
	layoutMerchantNameValidateTh.setVisible(false);
	layoutCompanyNameValidateTh.setVisible(false);
	layoutMerchantServiceTypeValidate.setVisible(false);
	layoutMCCCodeValidate.setVisible(false);
	layoutStatementNameValidate.setVisible(false);
	layoutBusinessRegistrationNumberValidate.setVisible(false);
	layoutCountryRegionValidate.setVisible(false);
	layoutCountryDomicileValidate.setVisible(false);
	layoutMailingAddressValidate.setVisible(false);
	layoutBusinessAddressValidate.setVisible(false);
	layoutFaxNumberValidate.setVisible(false);
	layoutUrlValidate.setVisible(false);
	layoutEnquiryNumberValidate.setVisible(false);
	layoutTaxIdValidate.setVisible(false);
	layoutIsTestMerchantValidate.setVisible(false);
	layoutBlankValidate.setVisible(false);

	layoutProjectContactNameValidate.setVisible(false);
	layoutProjectContactEmailAddressValidate.setVisible(false);
	layoutProjectContactPhoneValidate.setVisible(false);
	layoutProjectContactMobileValidate.setVisible(false);

	layoutOperationContactNameValidate.setVisible(false);
	layoutOperationContactEmailAddressValidate.setVisible(false);
	layoutOperationContactPhoneValidate.setVisible(false);
	layoutOperationContactMobileValidate.setVisible(false);

	layoutTechnicalContactNameValidate.setVisible(false);
	layoutTechnicalContactEmailAddressValidate.setVisible(false);
	layoutTechnicalContactPhoneValidate.setVisible(false);
	layoutTechnicalContactMobileValidate.setVisible(false);

	layoutFinancialContactNameValidate.setVisible(false);
	layoutFinancialContactEmailAddressValidate.setVisible(false);
	layoutFinancialContactPhoneValidate.setVisible(false);
	layoutFinancialContactMobileValidate.setVisible(false);

	layoutLogoValidate.setSpacing(true);
	layoutMerchantIdValidate.setSpacing(true);
	layoutStatusValidate.setSpacing(true);
	layoutMerchantNameValidateEn.setSpacing(true);
	layoutCompanyNameValidateEn.setSpacing(true);
	layoutMerchantNameValidateTh.setSpacing(true);
	layoutCompanyNameValidateTh.setSpacing(true);
	layoutMerchantServiceTypeValidate.setSpacing(true);
	layoutMCCCodeValidate.setSpacing(true);
	layoutStatementNameValidate.setSpacing(true);
	layoutBusinessRegistrationNumberValidate.setSpacing(true);
	layoutCountryRegionValidate.setSpacing(true);
	layoutCountryDomicileValidate.setSpacing(true);
	layoutMailingAddressValidate.setSpacing(true);
	layoutBusinessAddressValidate.setSpacing(true);
	layoutFaxNumberValidate.setSpacing(true);
	layoutUrlValidate.setSpacing(true);
	layoutEnquiryNumberValidate.setSpacing(true);
	layoutTaxIdValidate.setSpacing(true);
	layoutIsTestMerchantValidate.setSpacing(true);
	layoutBlankValidate.setSpacing(true);

	layoutProjectContactNameValidate.setSpacing(true);
	layoutProjectContactEmailAddressValidate.setSpacing(true);
	layoutProjectContactPhoneValidate.setSpacing(true);
	layoutProjectContactMobileValidate.setSpacing(true);

	layoutOperationContactNameValidate.setSpacing(true);
	layoutOperationContactEmailAddressValidate.setSpacing(true);
	layoutOperationContactPhoneValidate.setSpacing(true);
	layoutOperationContactMobileValidate.setSpacing(true);

	layoutTechnicalContactNameValidate.setSpacing(true);
	layoutTechnicalContactEmailAddressValidate.setSpacing(true);
	layoutTechnicalContactPhoneValidate.setSpacing(true);
	layoutTechnicalContactMobileValidate.setSpacing(true);

	layoutFinancialContactNameValidate.setSpacing(true);
	layoutFinancialContactEmailAddressValidate.setSpacing(true);
	layoutFinancialContactPhoneValidate.setSpacing(true);
	layoutFinancialContactMobileValidate.setSpacing(true);

	Label lblSepInformationCol1Row1 = new Label();
	Label lblSepInformationCol1Row2 = new Label();
	Label lblSepInformationCol1Row3 = new Label();
	Label lblSepInformationCol1Row4 = new Label();
	Label lblSepInformationCol1Row5 = new Label();
	Label lblSepInformationCol1Row6 = new Label();
	Label lblSepInformationCol1Row7 = new Label();
	Label lblSepInformationCol1Row8 = new Label();
	Label lblSepInformationCol1Row9 = new Label();
	Label lblSepInformationCol1Row10 = new Label();

	Label lblSepInformationContactCol1Row1 = new Label();
	Label lblSepInformationContactCol1Row2 = new Label();
	Label lblSepInformationContactCol1Row3 = new Label();
	Label lblSepInformationContactCol1Row4 = new Label();
	Label lblSepInformationContactCol1Row5 = new Label();
	Label lblSepInformationContactCol1Row6 = new Label();
	Label lblSepInformationContactCol1Row7 = new Label();
	Label lblSepInformationContactCol1Row8 = new Label();

	Label lblSepInformationCol2Row1 = new Label();
	Label lblSepInformationCol2Row2 = new Label();
	Label lblSepInformationCol2Row3 = new Label();
	Label lblSepInformationCol2Row4 = new Label();
	Label lblSepInformationCol2Row5 = new Label();
	Label lblSepInformationCol2Row6 = new Label();
	Label lblSepInformationCol2Row7 = new Label();
	Label lblSepInformationCol2Row8 = new Label();
	Label lblSepInformationCol2Row9 = new Label();
	Label lblSepInformationCol2Row10 = new Label();

	Label lblSepInformationContactCol2Row1 = new Label();
	Label lblSepInformationContactCol2Row2 = new Label();
	Label lblSepInformationContactCol2Row3 = new Label();
	Label lblSepInformationContactCol2Row4 = new Label();
	Label lblSepInformationContactCol2Row5 = new Label();
	Label lblSepInformationContactCol2Row6 = new Label();
	Label lblSepInformationContactCol2Row7 = new Label();
	Label lblSepInformationContactCol2Row8 = new Label();

	lblSepInformationCol1Row1.setWidth("200px");
	lblSepInformationCol1Row2.setWidth("200px");
	lblSepInformationCol1Row3.setWidth("200px");
	lblSepInformationCol1Row4.setWidth("200px");
	lblSepInformationCol1Row5.setWidth("200px");
	lblSepInformationCol1Row6.setWidth("200px");
	lblSepInformationCol1Row7.setWidth("200px");
	lblSepInformationCol1Row8.setWidth("200px");
	lblSepInformationCol1Row9.setWidth("200px");
	lblSepInformationCol1Row10.setWidth("200px");

	lblSepInformationContactCol1Row1.setWidth("200px");
	lblSepInformationContactCol1Row2.setWidth("200px");
	lblSepInformationContactCol1Row3.setWidth("200px");
	lblSepInformationContactCol1Row4.setWidth("200px");
	lblSepInformationContactCol1Row5.setWidth("200px");
	lblSepInformationContactCol1Row6.setWidth("200px");
	lblSepInformationContactCol1Row7.setWidth("200px");
	lblSepInformationContactCol1Row8.setWidth("200px");

	lblSepInformationCol2Row1.setWidth("200px");
	lblSepInformationCol2Row2.setWidth("200px");
	lblSepInformationCol2Row3.setWidth("200px");
	lblSepInformationCol2Row4.setWidth("200px");
	lblSepInformationCol2Row5.setWidth("200px");
	lblSepInformationCol2Row6.setWidth("200px");
	lblSepInformationCol2Row7.setWidth("200px");
	lblSepInformationCol2Row8.setWidth("200px");
	lblSepInformationCol2Row9.setWidth("200px");
	lblSepInformationCol2Row10.setWidth("200px");

	lblSepInformationContactCol2Row1.setWidth("200px");
	lblSepInformationContactCol2Row2.setWidth("200px");
	lblSepInformationContactCol2Row3.setWidth("200px");
	lblSepInformationContactCol2Row4.setWidth("200px");
	lblSepInformationContactCol2Row5.setWidth("200px");
	lblSepInformationContactCol2Row6.setWidth("200px");
	lblSepInformationContactCol2Row7.setWidth("200px");
	lblSepInformationContactCol2Row8.setWidth("200px");

	// col1
	layoutMerchantIdValidate.addComponent(lblSepInformationCol1Row1);
	layoutMerchantIdValidate.addComponent(lblMerchantIdValidateMessage);
	layoutMerchantIdValidate.setComponentAlignment(lblMerchantIdValidateMessage, Alignment.TOP_LEFT);

	layoutMerchantNameValidateEn.addComponent(lblSepInformationCol1Row2);
	layoutMerchantNameValidateEn.addComponent(lblMerchantNameValidateMessageEn);
	layoutMerchantNameValidateEn.setComponentAlignment(lblMerchantNameValidateMessageEn, Alignment.TOP_LEFT);

	layoutCompanyNameValidateEn.addComponent(lblSepInformationCol1Row3);
	layoutCompanyNameValidateEn.addComponent(lblCompanyNameValidateMessageEn);
	layoutCompanyNameValidateEn.setComponentAlignment(lblCompanyNameValidateMessageEn, Alignment.TOP_LEFT);

	layoutMerchantServiceTypeValidate.addComponent(lblSepInformationCol1Row4);
	layoutMerchantServiceTypeValidate.addComponent(lblMerchantServiceTypeValidateMessage);
	layoutMerchantServiceTypeValidate.setComponentAlignment(lblMerchantServiceTypeValidateMessage, Alignment.TOP_LEFT);

	layoutBusinessRegistrationNumberValidate.addComponent(lblSepInformationCol1Row5);
	layoutBusinessRegistrationNumberValidate.addComponent(lblBusinessRegistrationNumberValidateMessage);
	layoutBusinessRegistrationNumberValidate.setComponentAlignment(lblBusinessRegistrationNumberValidateMessage, Alignment.TOP_LEFT);

	layoutCountryDomicileValidate.addComponent(lblSepInformationCol1Row6);
	layoutCountryDomicileValidate.addComponent(lblCountryDomicileValidateMessage);
	layoutCountryDomicileValidate.setComponentAlignment(lblCountryDomicileValidateMessage, Alignment.TOP_LEFT);

	layoutBusinessAddressValidate.addComponent(lblSepInformationCol1Row7);
	layoutBusinessAddressValidate.addComponent(lblBusinessAddressValidateMessage);
	layoutBusinessAddressValidate.setComponentAlignment(lblBusinessAddressValidateMessage, Alignment.TOP_LEFT);

	layoutUrlValidate.addComponent(lblSepInformationCol1Row8);
	layoutUrlValidate.addComponent(lblUrlValidateMessage);
	layoutUrlValidate.setComponentAlignment(lblUrlValidateMessage, Alignment.TOP_LEFT);

	layoutTaxIdValidate.addComponent(lblSepInformationCol1Row9);
	layoutTaxIdValidate.addComponent(lblTaxIdValidateMessage);
	layoutTaxIdValidate.setComponentAlignment(lblTaxIdValidateMessage, Alignment.TOP_LEFT);

	layoutIsTestMerchantValidate.addComponent(lblSepInformationCol1Row10);
	layoutIsTestMerchantValidate.addComponent(lblIsTestMerchantValidateMessage);
	layoutIsTestMerchantValidate.setComponentAlignment(lblIsTestMerchantValidateMessage, Alignment.TOP_LEFT);

	layoutProjectContactNameValidate.addComponent(lblSepInformationContactCol1Row1);
	layoutProjectContactNameValidate.addComponent(lblProjectContactNameValidateMessage);
	layoutProjectContactNameValidate.setComponentAlignment(lblProjectContactNameValidateMessage, Alignment.TOP_LEFT);

	layoutProjectContactPhoneValidate.addComponent(lblSepInformationContactCol1Row2);
	layoutProjectContactPhoneValidate.addComponent(lblProjectContactPhoneValidateMessage);
	layoutProjectContactPhoneValidate.setComponentAlignment(lblProjectContactPhoneValidateMessage, Alignment.TOP_LEFT);

	layoutProjectContactMobileValidate.addComponent(lblSepInformationContactCol1Row3);
	layoutProjectContactMobileValidate.addComponent(lblProjectContactMobileValidateMessage);
	layoutProjectContactMobileValidate.setComponentAlignment(lblProjectContactMobileValidateMessage, Alignment.TOP_LEFT);

	layoutProjectContactEmailAddressValidate.addComponent(lblSepInformationContactCol1Row4);
	layoutProjectContactEmailAddressValidate.addComponent(lblProjectContactEmailAddressValidateMessage);
	layoutProjectContactEmailAddressValidate.setComponentAlignment(lblProjectContactEmailAddressValidateMessage, Alignment.TOP_LEFT);

	layoutTechnicalContactNameValidate.addComponent(lblSepInformationContactCol1Row5);
	layoutTechnicalContactNameValidate.addComponent(lblTechnicalContactNameValidateMessage);
	layoutTechnicalContactNameValidate.setComponentAlignment(lblTechnicalContactNameValidateMessage, Alignment.TOP_LEFT);

	layoutTechnicalContactPhoneValidate.addComponent(lblSepInformationContactCol1Row6);
	layoutTechnicalContactPhoneValidate.addComponent(lblTechnicalContactPhoneValidateMessage);
	layoutTechnicalContactPhoneValidate.setComponentAlignment(lblTechnicalContactPhoneValidateMessage, Alignment.TOP_LEFT);

	layoutTechnicalContactMobileValidate.addComponent(lblSepInformationContactCol1Row7);
	layoutTechnicalContactMobileValidate.addComponent(lblTechnicalContactMobileValidateMessage);
	layoutTechnicalContactMobileValidate.setComponentAlignment(lblTechnicalContactMobileValidateMessage, Alignment.TOP_LEFT);

	layoutTechnicalContactEmailAddressValidate.addComponent(lblSepInformationContactCol1Row8);
	layoutTechnicalContactEmailAddressValidate.addComponent(lblTechnicalContactEmailAddressValidateMessage);
	layoutTechnicalContactEmailAddressValidate
		.setComponentAlignment(lblTechnicalContactEmailAddressValidateMessage, Alignment.TOP_LEFT);

	// col2
	layoutBlankValidate.addComponent(lblSepInformationCol2Row10);
	layoutBlankValidate.addComponent(lblBlankValidateMessage);
	layoutBlankValidate.setComponentAlignment(lblBlankValidateMessage, Alignment.TOP_LEFT);

	layoutStatusValidate.addComponent(lblSepInformationCol2Row1);
	layoutStatusValidate.addComponent(lblStatusValidateMessage);
	layoutStatusValidate.setComponentAlignment(lblStatusValidateMessage, Alignment.TOP_LEFT);

	layoutMerchantNameValidateTh.addComponent(lblSepInformationCol2Row2);
	layoutMerchantNameValidateTh.addComponent(lblMerchantNameValidateMessageTh);
	layoutMerchantNameValidateTh.setComponentAlignment(lblMerchantNameValidateMessageTh, Alignment.TOP_LEFT);

	layoutCompanyNameValidateTh.addComponent(lblSepInformationCol2Row3);
	layoutCompanyNameValidateTh.addComponent(lblCompanyNameValidateMessageTh);
	layoutCompanyNameValidateTh.setComponentAlignment(lblCompanyNameValidateMessageTh, Alignment.TOP_LEFT);

	layoutMCCCodeValidate.addComponent(lblSepInformationCol2Row4);
	layoutMCCCodeValidate.addComponent(lblMCCCodeValidateMessage);
	layoutMCCCodeValidate.setComponentAlignment(lblMCCCodeValidateMessage, Alignment.TOP_LEFT);

	layoutStatementNameValidate.addComponent(lblSepInformationCol2Row5);
	layoutStatementNameValidate.addComponent(lblStatementNameValidateMessage);
	layoutStatementNameValidate.setComponentAlignment(lblStatementNameValidateMessage, Alignment.TOP_LEFT);

	layoutCountryRegionValidate.addComponent(lblSepInformationCol2Row6);
	layoutCountryRegionValidate.addComponent(lblCountryRegionValidateMessage);
	layoutCountryRegionValidate.setComponentAlignment(lblCountryRegionValidateMessage, Alignment.TOP_LEFT);

	layoutMailingAddressValidate.addComponent(lblSepInformationCol2Row7);
	layoutMailingAddressValidate.addComponent(lblMailingAddressValidateMessage);
	layoutMailingAddressValidate.setComponentAlignment(lblMailingAddressValidateMessage, Alignment.TOP_LEFT);

	layoutFaxNumberValidate.addComponent(lblSepInformationCol2Row8);
	layoutFaxNumberValidate.addComponent(lblFaxNumberValidateMessage);
	layoutFaxNumberValidate.setComponentAlignment(lblFaxNumberValidateMessage, Alignment.TOP_LEFT);

	layoutEnquiryNumberValidate.addComponent(lblSepInformationCol2Row9);
	layoutEnquiryNumberValidate.addComponent(lblEnquiryNumberValidateMessage);
	layoutEnquiryNumberValidate.setComponentAlignment(lblEnquiryNumberValidateMessage, Alignment.TOP_LEFT);

	layoutOperationContactNameValidate.addComponent(lblSepInformationContactCol2Row1);
	layoutOperationContactNameValidate.addComponent(lblOperationContactNameValidateMessage);
	layoutOperationContactNameValidate.setComponentAlignment(lblOperationContactNameValidateMessage, Alignment.TOP_LEFT);

	layoutOperationContactPhoneValidate.addComponent(lblSepInformationContactCol2Row2);
	layoutOperationContactPhoneValidate.addComponent(lblOperationContactPhoneValidateMessage);
	layoutOperationContactPhoneValidate.setComponentAlignment(lblOperationContactPhoneValidateMessage, Alignment.TOP_LEFT);

	layoutOperationContactMobileValidate.addComponent(lblSepInformationContactCol2Row3);
	layoutOperationContactMobileValidate.addComponent(lblOperationContactMobileValidateMessage);
	layoutOperationContactMobileValidate.setComponentAlignment(lblOperationContactMobileValidateMessage, Alignment.TOP_LEFT);

	layoutOperationContactEmailAddressValidate.addComponent(lblSepInformationContactCol2Row4);
	layoutOperationContactEmailAddressValidate.addComponent(lblOperationContactEmailAddressValidateMessage);
	layoutOperationContactEmailAddressValidate
		.setComponentAlignment(lblOperationContactEmailAddressValidateMessage, Alignment.TOP_LEFT);

	layoutFinancialContactNameValidate.addComponent(lblSepInformationContactCol2Row5);
	layoutFinancialContactNameValidate.addComponent(lblFinancialContactNameValidateMessage);
	layoutFinancialContactNameValidate.setComponentAlignment(lblFinancialContactNameValidateMessage, Alignment.TOP_LEFT);

	layoutFinancialContactPhoneValidate.addComponent(lblSepInformationContactCol2Row6);
	layoutFinancialContactPhoneValidate.addComponent(lblFinancialContactPhoneValidateMessage);
	layoutFinancialContactPhoneValidate.setComponentAlignment(lblFinancialContactPhoneValidateMessage, Alignment.TOP_LEFT);

	layoutFinancialContactMobileValidate.addComponent(lblSepInformationContactCol2Row7);
	layoutFinancialContactMobileValidate.addComponent(lblFinancialContactMobileValidateMessage);
	layoutFinancialContactMobileValidate.setComponentAlignment(lblFinancialContactMobileValidateMessage, Alignment.TOP_LEFT);

	layoutFinancialContactEmailAddressValidate.addComponent(lblSepInformationContactCol2Row8);
	layoutFinancialContactEmailAddressValidate.addComponent(lblFinancialContactEmailAddressValidateMessage);
	layoutFinancialContactEmailAddressValidate
		.setComponentAlignment(lblFinancialContactEmailAddressValidateMessage, Alignment.TOP_LEFT);

	layoutLogo.setWidth("300px");
	layoutLogo.setHeight("150px");
	layoutLogo.addComponent(lblMerchantLogoHint);
	layoutLogo.addComponent(imgMerchantLogo);
	layoutLogo.setComponentAlignment(lblMerchantLogoHint, Alignment.MIDDLE_CENTER);
	layoutLogo.setComponentAlignment(imgMerchantLogo, Alignment.MIDDLE_CENTER);
	imgMerchantLogo.setVisible(false);

	layoutLogo.addStyleName("box-layout");
	ulMerchantLogo.setWidth("300px");

	lblMerchantId.setWidth("200px");
	lblStatus.setWidth("200px");
	lblMerchantNameEn.setWidth("200px");
	lblCompanyNameEn.setWidth("200px");
	lblMerchantNameTh.setWidth("200px");
	lblCompanyNameTh.setWidth("200px");
	lblMerchantServiceType.setWidth("200px");
	lblMCCCode.setWidth("200px");
	lblStatementName.setWidth("200px");
	lblBusinessRegistrationNumber.setWidth("200px");
	lblCountryRegion.setWidth("200px");
	lblCountryDomicile.setWidth("200px");
	lblMailingAddress.setWidth("200px");
	lblBusinessAddress.setWidth("200px");
	lblFaxNumber.setWidth("200px");
	lblUrl.setWidth("200px");
	lblEnquiryNumber.setWidth("200px");
	lblTaxId.setWidth("200px");
	lblIsTestMerchant.setWidth("200px");

	lblProjectTitle.setWidth("200px");
	lblProjectContactName.setWidth("200px");
	lblProjectContactEmailAddress.setWidth("200px");
	lblProjectContactPhone.setWidth("200px");
	lblProjectContactMobile.setWidth("200px");

	lblOperationTitle.setWidth("200px");
	lblOperationContactName.setWidth("200px");
	lblOperationContactEmailAddress.setWidth("200px");
	lblOperationContactPhone.setWidth("200px");
	lblOperationContactMobile.setWidth("200px");

	lblTechnicalTitle.setWidth("200px");
	lblTechnicalContactName.setWidth("200px");
	lblTechnicalContactEmailAddress.setWidth("200px");
	lblTechnicalContactPhone.setWidth("200px");
	lblTechnicalContactMobile.setWidth("200px");

	lblFinancialTitle.setWidth("200px");
	lblFinancialContactName.setWidth("200px");
	lblFinancialContactEmailAddress.setWidth("200px");
	lblFinancialContactPhone.setWidth("200px");
	lblFinancialContactMobile.setWidth("200px");

	txtMerchantId.setWidth("200px");
	cbbStatus.setWidth("200px");
	txtMerchantNameEn.setWidth("200px");
	txtCompanyNameEn.setWidth("200px");
	txtMerchantNameTh.setWidth("200px");
	txtCompanyNameTh.setWidth("200px");
	cbbMerchantServiceType.setWidth("200px");
	cbbMCCCode.setWidth("200px");
	txtStatementName.setWidth("200px");
	txtBusinessRegistrationNumber.setWidth("200px");
	cbbCountryRegion.setWidth("200px");
	cbbCountryDomicile.setWidth("200px");
	txtMailingAddress.setWidth("200px");
	txtBusinessAddress.setWidth("200px");
	txtFaxNumber.setWidth("200px");
	txtUrl.setWidth("200px");
	txtEnquiryNumber.setWidth("200px");
	txtTaxId.setWidth("200px");
	cbIsTestMerchant.setWidth("200px");

	txtProjectContactName.setWidth("200px");
	txtProjectContactEmailAddress.setWidth("200px");
	txtProjectContactPhone.setWidth("200px");
	txtProjectContactMobile.setWidth("200px");

	txtOperationContactName.setWidth("200px");
	txtOperationContactEmailAddress.setWidth("200px");
	txtOperationContactPhone.setWidth("200px");
	txtOperationContactMobile.setWidth("200px");

	txtTechnicalContactName.setWidth("200px");
	txtTechnicalContactEmailAddress.setWidth("200px");
	txtTechnicalContactPhone.setWidth("200px");
	txtTechnicalContactMobile.setWidth("200px");

	txtFinancialContactName.setWidth("200px");
	txtFinancialContactEmailAddress.setWidth("200px");
	txtFinancialContactPhone.setWidth("200px");
	txtFinancialContactMobile.setWidth("200px");

	this.btnSave.addStyleName("button-blue");
	this.btnClear.addStyleName("button-green");
	this.btnCancel.addStyleName("button-red");

	this.btnSave.setDisableOnClick(true);
	this.btnClear.setDisableOnClick(true);
	this.btnCancel.setDisableOnClick(true);

	this.btnSave.setWidth("70px");
	this.btnClear.setWidth("70px");
	this.btnCancel.setWidth("70px");

	VerticalLayout mainLayout = new VerticalLayout();
	mainLayout.setSizeFull();
	mainLayout.setSizeUndefined();
	mainLayout.setWidth("100%");

	VerticalLayout informationLayout = new VerticalLayout();
	informationLayout.setSizeFull();
	informationLayout.setSizeUndefined();
	informationLayout.setSpacing(true);
	informationLayout.setWidth("100%");

	VerticalLayout contactLayout = new VerticalLayout();
	contactLayout.setSizeFull();
	contactLayout.setSizeUndefined();
	contactLayout.setSpacing(true);
	contactLayout.setWidth("100%");

	HorizontalLayout commandLayout = new HorizontalLayout();
	commandLayout.setSizeUndefined();
	commandLayout.setSpacing(true);

	this.merchantInformationPanel.setContent(informationLayout);
	this.merchantGroupContactPersonPanel.setContent(contactLayout);
	this.createMerchantProfilePanel.setContent(mainLayout);

	VerticalLayout formInformationLayout = new VerticalLayout();
	formInformationLayout.setId("formInformationLayout");
	formInformationLayout.setSizeUndefined();
	formInformationLayout.setWidth("100%");
	formInformationLayout.setSpacing(true);

	HorizontalLayout informationRow0 = new HorizontalLayout();
	HorizontalLayout informationRow1 = new HorizontalLayout();
	HorizontalLayout informationRow2 = new HorizontalLayout();
	HorizontalLayout informationRow3 = new HorizontalLayout();
	HorizontalLayout informationRow4 = new HorizontalLayout();
	HorizontalLayout informationRow5 = new HorizontalLayout();
	HorizontalLayout informationRow6 = new HorizontalLayout();

	informationRow1.setSpacing(true);
	informationRow2.setSpacing(true);
	informationRow3.setSpacing(true);
	informationRow4.setSpacing(true);
	informationRow5.setSpacing(true);

	informationRow1.setSizeUndefined();
	informationRow2.setSizeUndefined();
	informationRow3.setSizeUndefined();
	informationRow4.setSizeUndefined();
	informationRow5.setSizeUndefined();

	VerticalLayout informationCol1Layout = new VerticalLayout();
	VerticalLayout informationCol2Layout = new VerticalLayout();

	informationCol1Layout.setSizeUndefined();
	informationCol1Layout.setWidth("100%");
	informationCol1Layout.setSpacing(true);

	informationCol2Layout.setSizeUndefined();
	informationCol2Layout.setWidth("100%");
	informationCol2Layout.setSpacing(true);

	HorizontalLayout informationCol1Row1 = new HorizontalLayout();
	HorizontalLayout informationCol1Row2 = new HorizontalLayout();
	HorizontalLayout informationCol1Row3 = new HorizontalLayout();
	HorizontalLayout informationCol1Row4 = new HorizontalLayout();
	HorizontalLayout informationCol1Row5 = new HorizontalLayout();
	HorizontalLayout informationCol1Row6 = new HorizontalLayout();
	HorizontalLayout informationCol1Row7 = new HorizontalLayout();
	HorizontalLayout informationCol1Row8 = new HorizontalLayout();
	HorizontalLayout informationCol1Row9 = new HorizontalLayout();
	HorizontalLayout informationCol1Row0 = new HorizontalLayout();

	HorizontalLayout informationCol2Row1 = new HorizontalLayout();
	HorizontalLayout informationCol2Row2 = new HorizontalLayout();
	HorizontalLayout informationCol2Row3 = new HorizontalLayout();
	HorizontalLayout informationCol2Row4 = new HorizontalLayout();
	HorizontalLayout informationCol2Row5 = new HorizontalLayout();
	HorizontalLayout informationCol2Row6 = new HorizontalLayout();
	HorizontalLayout informationCol2Row7 = new HorizontalLayout();
	HorizontalLayout informationCol2Row8 = new HorizontalLayout();
	HorizontalLayout informationCol2Row9 = new HorizontalLayout();
	HorizontalLayout informationCol2Row0 = new HorizontalLayout();

	informationCol1Row1.setSpacing(true);
	informationCol1Row2.setSpacing(true);
	informationCol1Row3.setSpacing(true);
	informationCol1Row4.setSpacing(true);
	informationCol1Row5.setSpacing(true);
	informationCol1Row6.setSpacing(true);
	informationCol1Row7.setSpacing(true);
	informationCol1Row8.setSpacing(true);
	informationCol1Row9.setSpacing(true);
	informationCol1Row0.setSpacing(true);

	informationCol1Row1.setSizeUndefined();
	informationCol1Row2.setSizeUndefined();
	informationCol1Row3.setSizeUndefined();
	informationCol1Row4.setSizeUndefined();
	informationCol1Row5.setSizeUndefined();
	informationCol1Row6.setSizeUndefined();
	informationCol1Row7.setSizeUndefined();
	informationCol1Row8.setSizeUndefined();
	informationCol1Row9.setSizeUndefined();
	informationCol1Row0.setSizeUndefined();

	informationCol2Row1.setSpacing(true);
	informationCol2Row2.setSpacing(true);
	informationCol2Row3.setSpacing(true);
	informationCol2Row4.setSpacing(true);
	informationCol2Row5.setSpacing(true);
	informationCol2Row6.setSpacing(true);
	informationCol2Row7.setSpacing(true);
	informationCol2Row8.setSpacing(true);
	informationCol2Row9.setSpacing(true);
	informationCol2Row0.setSpacing(true);

	informationCol2Row1.setSizeUndefined();
	informationCol2Row2.setSizeUndefined();
	informationCol2Row3.setSizeUndefined();
	informationCol2Row4.setSizeUndefined();
	informationCol2Row5.setSizeUndefined();
	informationCol2Row6.setSizeUndefined();
	informationCol2Row7.setSizeUndefined();
	informationCol2Row8.setSizeUndefined();
	informationCol2Row9.setSizeUndefined();
	informationCol2Row0.setSizeUndefined();

	informationCol1Row1.addComponent(lblMerchantId);
	informationCol1Row1.addComponent(txtMerchantId);
	informationCol1Row1.setComponentAlignment(lblMerchantId, Alignment.MIDDLE_LEFT);
	informationCol1Row1.setComponentAlignment(txtMerchantId, Alignment.MIDDLE_LEFT);

	informationCol1Row2.addComponent(lblMerchantNameEn);
	informationCol1Row2.addComponent(txtMerchantNameEn);
	informationCol1Row2.setComponentAlignment(lblMerchantNameEn, Alignment.MIDDLE_LEFT);
	informationCol1Row2.setComponentAlignment(txtMerchantNameEn, Alignment.MIDDLE_LEFT);

	informationCol1Row3.addComponent(lblCompanyNameEn);
	informationCol1Row3.addComponent(txtCompanyNameEn);
	informationCol1Row3.setComponentAlignment(lblCompanyNameEn, Alignment.MIDDLE_LEFT);
	informationCol1Row3.setComponentAlignment(txtCompanyNameEn, Alignment.MIDDLE_LEFT);

	informationCol1Row4.addComponent(lblMerchantServiceType);
	informationCol1Row4.addComponent(cbbMerchantServiceType);
	informationCol1Row4.setComponentAlignment(lblMerchantServiceType, Alignment.MIDDLE_LEFT);
	informationCol1Row4.setComponentAlignment(cbbMerchantServiceType, Alignment.MIDDLE_LEFT);

	informationCol1Row5.addComponent(lblBusinessRegistrationNumber);
	informationCol1Row5.addComponent(txtBusinessRegistrationNumber);
	informationCol1Row5.setComponentAlignment(lblBusinessRegistrationNumber, Alignment.MIDDLE_LEFT);
	informationCol1Row5.setComponentAlignment(txtBusinessRegistrationNumber, Alignment.MIDDLE_LEFT);

	informationCol1Row6.addComponent(lblCountryDomicile);
	informationCol1Row6.addComponent(cbbCountryDomicile);
	informationCol1Row6.setComponentAlignment(lblCountryDomicile, Alignment.MIDDLE_LEFT);
	informationCol1Row6.setComponentAlignment(cbbCountryDomicile, Alignment.MIDDLE_LEFT);

	informationCol1Row7.addComponent(lblBusinessAddress);
	informationCol1Row7.addComponent(txtBusinessAddress);
	informationCol1Row7.setComponentAlignment(lblBusinessAddress, Alignment.MIDDLE_LEFT);
	informationCol1Row7.setComponentAlignment(txtBusinessAddress, Alignment.MIDDLE_LEFT);

	informationCol1Row8.addComponent(lblUrl);
	informationCol1Row8.addComponent(txtUrl);
	informationCol1Row8.setComponentAlignment(lblUrl, Alignment.MIDDLE_LEFT);
	informationCol1Row8.setComponentAlignment(txtUrl, Alignment.MIDDLE_LEFT);

	informationCol1Row9.addComponent(lblTaxId);
	informationCol1Row9.addComponent(txtTaxId);
	informationCol1Row9.setComponentAlignment(lblTaxId, Alignment.MIDDLE_LEFT);
	informationCol1Row9.setComponentAlignment(txtTaxId, Alignment.MIDDLE_LEFT);

	informationCol1Row0.addComponent(lblIsTestMerchant);
	informationCol1Row0.addComponent(cbIsTestMerchant);
	informationCol1Row0.setComponentAlignment(lblIsTestMerchant, Alignment.MIDDLE_LEFT);
	informationCol1Row0.setComponentAlignment(cbIsTestMerchant, Alignment.MIDDLE_LEFT);

	informationCol2Row1.addComponent(lblStatus);
	informationCol2Row1.addComponent(cbbStatus);
	informationCol2Row1.setComponentAlignment(lblStatus, Alignment.MIDDLE_LEFT);
	informationCol2Row1.setComponentAlignment(cbbStatus, Alignment.MIDDLE_LEFT);

	informationCol2Row2.addComponent(lblMerchantNameTh);
	informationCol2Row2.addComponent(txtMerchantNameTh);
	informationCol2Row2.setComponentAlignment(lblMerchantNameTh, Alignment.MIDDLE_LEFT);
	informationCol2Row2.setComponentAlignment(txtMerchantNameTh, Alignment.MIDDLE_LEFT);

	informationCol2Row3.addComponent(lblCompanyNameTh);
	informationCol2Row3.addComponent(txtCompanyNameTh);
	informationCol2Row3.setComponentAlignment(lblCompanyNameTh, Alignment.MIDDLE_LEFT);
	informationCol2Row3.setComponentAlignment(txtCompanyNameTh, Alignment.MIDDLE_LEFT);

	informationCol2Row4.addComponent(lblMCCCode);
	informationCol2Row4.addComponent(cbbMCCCode);
	informationCol2Row4.setComponentAlignment(lblMCCCode, Alignment.MIDDLE_LEFT);
	informationCol2Row4.setComponentAlignment(cbbMCCCode, Alignment.MIDDLE_LEFT);

	informationCol2Row5.addComponent(lblStatementName);
	informationCol2Row5.addComponent(txtStatementName);
	informationCol2Row5.setComponentAlignment(lblStatementName, Alignment.MIDDLE_LEFT);
	informationCol2Row5.setComponentAlignment(txtStatementName, Alignment.MIDDLE_LEFT);

	informationCol2Row6.addComponent(lblCountryRegion);
	informationCol2Row6.addComponent(cbbCountryRegion);
	informationCol2Row6.setComponentAlignment(lblCountryRegion, Alignment.MIDDLE_LEFT);
	informationCol2Row6.setComponentAlignment(cbbCountryRegion, Alignment.MIDDLE_LEFT);

	informationCol2Row7.addComponent(lblMailingAddress);
	informationCol2Row7.addComponent(txtMailingAddress);
	informationCol2Row7.setComponentAlignment(lblMailingAddress, Alignment.MIDDLE_LEFT);
	informationCol2Row7.setComponentAlignment(txtMailingAddress, Alignment.MIDDLE_LEFT);

	informationCol2Row8.addComponent(lblFaxNumber);
	informationCol2Row8.addComponent(txtFaxNumber);
	informationCol2Row8.setComponentAlignment(lblFaxNumber, Alignment.MIDDLE_LEFT);
	informationCol2Row8.setComponentAlignment(txtFaxNumber, Alignment.MIDDLE_LEFT);

	informationCol2Row9.addComponent(lblEnquiryNumber);
	informationCol2Row9.addComponent(txtEnquiryNumber);
	informationCol2Row9.setComponentAlignment(lblEnquiryNumber, Alignment.MIDDLE_LEFT);
	informationCol2Row9.setComponentAlignment(txtEnquiryNumber, Alignment.MIDDLE_LEFT);

	lblBlank.setHeight("19px");
	informationCol2Row0.setHeight("19px");
	informationCol2Row0.addComponent(lblBlank);
	informationCol2Row0.addComponent(lblBlank);
	informationCol2Row0.setComponentAlignment(lblBlank, Alignment.MIDDLE_LEFT);
	informationCol2Row0.setComponentAlignment(lblBlank, Alignment.MIDDLE_LEFT);

	informationCol1Layout.addComponent(informationCol1Row0);
	informationCol1Layout.addComponent(layoutIsTestMerchantValidate);
	informationCol1Layout.addComponent(informationCol1Row1);
	informationCol1Layout.addComponent(layoutMerchantIdValidate);
	informationCol1Layout.addComponent(informationCol1Row2);
	informationCol1Layout.addComponent(layoutMerchantNameValidateEn);
	informationCol1Layout.addComponent(informationCol1Row3);
	informationCol1Layout.addComponent(layoutCompanyNameValidateEn);
	informationCol1Layout.addComponent(informationCol1Row4);
	informationCol1Layout.addComponent(layoutMerchantServiceTypeValidate);
	informationCol1Layout.addComponent(informationCol1Row5);
	informationCol1Layout.addComponent(layoutBusinessRegistrationNumberValidate);
	informationCol1Layout.addComponent(informationCol1Row6);
	informationCol1Layout.addComponent(layoutCountryDomicileValidate);
	informationCol1Layout.addComponent(informationCol1Row7);
	informationCol1Layout.addComponent(layoutBusinessAddressValidate);
	informationCol1Layout.addComponent(informationCol1Row8);
	informationCol1Layout.addComponent(layoutUrlValidate);
	informationCol1Layout.addComponent(informationCol1Row9);
	informationCol1Layout.addComponent(layoutTaxIdValidate);

	informationCol2Layout.addComponent(informationCol2Row0);
	informationCol2Layout.addComponent(layoutBlankValidate);
	informationCol2Layout.addComponent(informationCol2Row1);
	informationCol2Layout.addComponent(layoutStatusValidate);
	informationCol2Layout.addComponent(informationCol2Row2);
	informationCol2Layout.addComponent(layoutMerchantNameValidateTh);
	informationCol2Layout.addComponent(informationCol2Row3);
	informationCol2Layout.addComponent(layoutCompanyNameValidateTh);
	informationCol2Layout.addComponent(informationCol2Row4);
	informationCol2Layout.addComponent(layoutMCCCodeValidate);
	informationCol2Layout.addComponent(informationCol2Row5);
	informationCol2Layout.addComponent(layoutStatementNameValidate);
	informationCol2Layout.addComponent(informationCol2Row6);
	informationCol2Layout.addComponent(layoutCountryRegionValidate);
	informationCol2Layout.addComponent(informationCol2Row7);
	informationCol2Layout.addComponent(layoutMailingAddressValidate);
	informationCol2Layout.addComponent(informationCol2Row8);
	informationCol2Layout.addComponent(layoutFaxNumberValidate);
	informationCol2Layout.addComponent(informationCol2Row9);
	informationCol2Layout.addComponent(layoutEnquiryNumberValidate);

	informationRow1.addComponent(lblMerchantLogo);
	informationRow2.addComponent(layoutLogo);
	informationRow3.addComponent(ulMerchantLogo);
	informationRow3.addComponent(layoutLogoValidate);
	informationRow1.setComponentAlignment(lblMerchantLogo, Alignment.MIDDLE_CENTER);
	informationRow2.setComponentAlignment(layoutLogo, Alignment.MIDDLE_CENTER);
	informationRow3.setComponentAlignment(ulMerchantLogo, Alignment.MIDDLE_CENTER);
	informationRow3.setComponentAlignment(layoutLogoValidate, Alignment.MIDDLE_CENTER);

	Label lblSepInformationCol = new Label();
	lblSepInformationCol.setWidth("40px");

	informationRow5.addComponent(informationCol1Layout);
	informationRow5.addComponent(lblSepInformationCol);
	informationRow5.addComponent(informationCol2Layout);

	formInformationLayout.addComponent(informationRow0);
	formInformationLayout.addComponent(informationRow1);
	formInformationLayout.addComponent(informationRow2);
	formInformationLayout.addComponent(informationRow3);
	formInformationLayout.addComponent(informationRow4);
	formInformationLayout.addComponent(informationRow5);
	formInformationLayout.addComponent(informationRow6);

	formInformationLayout.setComponentAlignment(informationRow0, Alignment.MIDDLE_CENTER);
	formInformationLayout.setComponentAlignment(informationRow1, Alignment.MIDDLE_CENTER);
	formInformationLayout.setComponentAlignment(informationRow2, Alignment.MIDDLE_CENTER);
	formInformationLayout.setComponentAlignment(informationRow3, Alignment.MIDDLE_CENTER);
	formInformationLayout.setComponentAlignment(informationRow4, Alignment.MIDDLE_CENTER);
	formInformationLayout.setComponentAlignment(informationRow5, Alignment.MIDDLE_CENTER);

	informationLayout.addComponent(formInformationLayout);
	informationLayout.setComponentAlignment(formInformationLayout, Alignment.MIDDLE_CENTER);

	HorizontalLayout contactRow = new HorizontalLayout();
	contactRow.setSizeUndefined();
	contactRow.setSpacing(true);

	VerticalLayout contactCol1Layout = new VerticalLayout();
	VerticalLayout contactCol2Layout = new VerticalLayout();

	contactCol1Layout.setSizeUndefined();
	contactCol1Layout.setWidth("100%");
	contactCol1Layout.setSpacing(true);

	contactCol2Layout.setSizeUndefined();
	contactCol2Layout.setWidth("100%");
	contactCol2Layout.setSpacing(true);

	HorizontalLayout contactCol1Row1 = new HorizontalLayout();
	HorizontalLayout contactCol1Row2 = new HorizontalLayout();
	HorizontalLayout contactCol1Row3 = new HorizontalLayout();
	HorizontalLayout contactCol1Row4 = new HorizontalLayout();
	HorizontalLayout contactCol1Row5 = new HorizontalLayout();
	HorizontalLayout contactCol1Row6 = new HorizontalLayout();
	HorizontalLayout contactCol1Row7 = new HorizontalLayout();
	HorizontalLayout contactCol1Row8 = new HorizontalLayout();
	HorizontalLayout contactCol1Row9 = new HorizontalLayout();
	HorizontalLayout contactCol1Row10 = new HorizontalLayout();

	HorizontalLayout contactCol2Row1 = new HorizontalLayout();
	HorizontalLayout contactCol2Row2 = new HorizontalLayout();
	HorizontalLayout contactCol2Row3 = new HorizontalLayout();
	HorizontalLayout contactCol2Row4 = new HorizontalLayout();
	HorizontalLayout contactCol2Row5 = new HorizontalLayout();
	HorizontalLayout contactCol2Row6 = new HorizontalLayout();
	HorizontalLayout contactCol2Row7 = new HorizontalLayout();
	HorizontalLayout contactCol2Row8 = new HorizontalLayout();
	HorizontalLayout contactCol2Row9 = new HorizontalLayout();
	HorizontalLayout contactCol2Row10 = new HorizontalLayout();

	contactCol1Row1.setSpacing(true);
	contactCol1Row2.setSpacing(true);
	contactCol1Row3.setSpacing(true);
	contactCol1Row4.setSpacing(true);
	contactCol1Row5.setSpacing(true);
	contactCol1Row6.setSpacing(true);
	contactCol1Row7.setSpacing(true);
	contactCol1Row8.setSpacing(true);
	contactCol1Row9.setSpacing(true);
	contactCol1Row10.setSpacing(true);

	contactCol1Row1.setSizeUndefined();
	contactCol1Row2.setSizeUndefined();
	contactCol1Row3.setSizeUndefined();
	contactCol1Row4.setSizeUndefined();
	contactCol1Row5.setSizeUndefined();
	contactCol1Row6.setSizeUndefined();
	contactCol1Row7.setSizeUndefined();
	contactCol1Row8.setSizeUndefined();
	contactCol1Row9.setSizeUndefined();
	contactCol1Row10.setSizeUndefined();

	contactCol2Row1.setSpacing(true);
	contactCol2Row2.setSpacing(true);
	contactCol2Row3.setSpacing(true);
	contactCol2Row4.setSpacing(true);
	contactCol2Row5.setSpacing(true);
	contactCol2Row6.setSpacing(true);
	contactCol2Row7.setSpacing(true);
	contactCol2Row8.setSpacing(true);
	contactCol2Row9.setSpacing(true);
	contactCol2Row10.setSpacing(true);

	contactCol2Row1.setSizeUndefined();
	contactCol2Row2.setSizeUndefined();
	contactCol2Row3.setSizeUndefined();
	contactCol2Row4.setSizeUndefined();
	contactCol2Row5.setSizeUndefined();
	contactCol2Row6.setSizeUndefined();
	contactCol2Row7.setSizeUndefined();
	contactCol2Row8.setSizeUndefined();
	contactCol2Row9.setSizeUndefined();
	contactCol2Row10.setSizeUndefined();

	contactCol1Row1.addComponent(lblProjectTitle);
	contactCol1Row1.setComponentAlignment(lblProjectTitle, Alignment.MIDDLE_LEFT);

	contactCol1Row2.addComponent(lblProjectContactName);
	contactCol1Row2.addComponent(txtProjectContactName);
	contactCol1Row2.setComponentAlignment(lblProjectContactName, Alignment.MIDDLE_LEFT);
	contactCol1Row2.setComponentAlignment(txtProjectContactName, Alignment.MIDDLE_LEFT);

	contactCol1Row3.addComponent(lblProjectContactPhone);
	contactCol1Row3.addComponent(txtProjectContactPhone);
	contactCol1Row3.setComponentAlignment(lblProjectContactPhone, Alignment.MIDDLE_LEFT);
	contactCol1Row3.setComponentAlignment(txtProjectContactPhone, Alignment.MIDDLE_LEFT);

	contactCol1Row4.addComponent(lblProjectContactMobile);
	contactCol1Row4.addComponent(txtProjectContactMobile);
	contactCol1Row4.setComponentAlignment(lblProjectContactMobile, Alignment.MIDDLE_LEFT);
	contactCol1Row4.setComponentAlignment(txtProjectContactMobile, Alignment.MIDDLE_LEFT);

	contactCol1Row5.addComponent(lblProjectContactEmailAddress);
	contactCol1Row5.addComponent(txtProjectContactEmailAddress);
	contactCol1Row5.setComponentAlignment(lblProjectContactEmailAddress, Alignment.MIDDLE_LEFT);
	contactCol1Row5.setComponentAlignment(txtProjectContactEmailAddress, Alignment.MIDDLE_LEFT);

	contactCol1Row6.addComponent(lblTechnicalTitle);
	contactCol1Row6.setComponentAlignment(lblTechnicalTitle, Alignment.MIDDLE_LEFT);

	contactCol1Row7.addComponent(lblTechnicalContactName);
	contactCol1Row7.addComponent(txtTechnicalContactName);
	contactCol1Row7.setComponentAlignment(lblTechnicalContactName, Alignment.MIDDLE_LEFT);
	contactCol1Row7.setComponentAlignment(txtTechnicalContactName, Alignment.MIDDLE_LEFT);

	contactCol1Row8.addComponent(lblTechnicalContactPhone);
	contactCol1Row8.addComponent(txtTechnicalContactPhone);
	contactCol1Row8.setComponentAlignment(lblTechnicalContactPhone, Alignment.MIDDLE_LEFT);
	contactCol1Row8.setComponentAlignment(txtTechnicalContactPhone, Alignment.MIDDLE_LEFT);

	contactCol1Row9.addComponent(lblTechnicalContactMobile);
	contactCol1Row9.addComponent(txtTechnicalContactMobile);
	contactCol1Row9.setComponentAlignment(lblTechnicalContactMobile, Alignment.MIDDLE_LEFT);
	contactCol1Row9.setComponentAlignment(txtTechnicalContactMobile, Alignment.MIDDLE_LEFT);

	contactCol1Row10.addComponent(lblTechnicalContactEmailAddress);
	contactCol1Row10.addComponent(txtTechnicalContactEmailAddress);
	contactCol1Row10.setComponentAlignment(lblTechnicalContactEmailAddress, Alignment.MIDDLE_LEFT);
	contactCol1Row10.setComponentAlignment(txtTechnicalContactEmailAddress, Alignment.MIDDLE_LEFT);

	contactCol2Row1.addComponent(lblOperationTitle);
	contactCol2Row1.setComponentAlignment(lblOperationTitle, Alignment.MIDDLE_LEFT);

	contactCol2Row2.addComponent(lblOperationContactName);
	contactCol2Row2.addComponent(txtOperationContactName);
	contactCol2Row2.setComponentAlignment(lblOperationContactName, Alignment.MIDDLE_LEFT);
	contactCol2Row2.setComponentAlignment(txtOperationContactName, Alignment.MIDDLE_LEFT);

	contactCol2Row3.addComponent(lblOperationContactPhone);
	contactCol2Row3.addComponent(txtOperationContactPhone);
	contactCol2Row3.setComponentAlignment(lblOperationContactPhone, Alignment.MIDDLE_LEFT);
	contactCol2Row3.setComponentAlignment(txtOperationContactPhone, Alignment.MIDDLE_LEFT);

	contactCol2Row4.addComponent(lblOperationContactMobile);
	contactCol2Row4.addComponent(txtOperationContactMobile);
	contactCol2Row4.setComponentAlignment(lblOperationContactMobile, Alignment.MIDDLE_LEFT);
	contactCol2Row4.setComponentAlignment(txtOperationContactMobile, Alignment.MIDDLE_LEFT);

	contactCol2Row5.addComponent(lblOperationContactEmailAddress);
	contactCol2Row5.addComponent(txtOperationContactEmailAddress);
	contactCol2Row5.setComponentAlignment(lblOperationContactEmailAddress, Alignment.MIDDLE_LEFT);
	contactCol2Row5.setComponentAlignment(txtOperationContactEmailAddress, Alignment.MIDDLE_LEFT);

	contactCol2Row6.addComponent(lblFinancialTitle);
	contactCol2Row6.setComponentAlignment(lblFinancialTitle, Alignment.MIDDLE_LEFT);

	contactCol2Row7.addComponent(lblFinancialContactName);
	contactCol2Row7.addComponent(txtFinancialContactName);
	contactCol2Row7.setComponentAlignment(lblFinancialContactName, Alignment.MIDDLE_LEFT);
	contactCol2Row7.setComponentAlignment(txtFinancialContactName, Alignment.MIDDLE_LEFT);

	contactCol2Row8.addComponent(lblFinancialContactPhone);
	contactCol2Row8.addComponent(txtFinancialContactPhone);
	contactCol2Row8.setComponentAlignment(lblFinancialContactPhone, Alignment.MIDDLE_LEFT);
	contactCol2Row8.setComponentAlignment(txtFinancialContactPhone, Alignment.MIDDLE_LEFT);

	contactCol2Row9.addComponent(lblFinancialContactMobile);
	contactCol2Row9.addComponent(txtFinancialContactMobile);
	contactCol2Row9.setComponentAlignment(lblFinancialContactMobile, Alignment.MIDDLE_LEFT);
	contactCol2Row9.setComponentAlignment(txtFinancialContactMobile, Alignment.MIDDLE_LEFT);

	contactCol2Row10.addComponent(lblFinancialContactEmailAddress);
	contactCol2Row10.addComponent(txtFinancialContactEmailAddress);
	contactCol2Row10.setComponentAlignment(lblFinancialContactEmailAddress, Alignment.MIDDLE_LEFT);
	contactCol2Row10.setComponentAlignment(txtFinancialContactEmailAddress, Alignment.MIDDLE_LEFT);

	contactCol1Layout.addComponent(contactCol1Row1);
	contactCol1Layout.addComponent(contactCol1Row2);
	contactCol1Layout.addComponent(layoutProjectContactNameValidate);
	contactCol1Layout.addComponent(contactCol1Row3);
	contactCol1Layout.addComponent(layoutProjectContactPhoneValidate);
	contactCol1Layout.addComponent(contactCol1Row4);
	contactCol1Layout.addComponent(layoutProjectContactMobileValidate);
	contactCol1Layout.addComponent(contactCol1Row5);
	contactCol1Layout.addComponent(layoutProjectContactEmailAddressValidate);
	contactCol1Layout.addComponent(new HorizontalLayout());
	contactCol1Layout.addComponent(contactCol1Row6);
	contactCol1Layout.addComponent(contactCol1Row7);
	contactCol1Layout.addComponent(layoutTechnicalContactNameValidate);
	contactCol1Layout.addComponent(contactCol1Row8);
	contactCol1Layout.addComponent(layoutTechnicalContactPhoneValidate);
	contactCol1Layout.addComponent(contactCol1Row9);
	contactCol1Layout.addComponent(layoutTechnicalContactMobileValidate);
	contactCol1Layout.addComponent(contactCol1Row10);
	contactCol1Layout.addComponent(layoutTechnicalContactEmailAddressValidate);

	contactCol2Layout.addComponent(contactCol2Row1);
	contactCol2Layout.addComponent(contactCol2Row2);
	contactCol2Layout.addComponent(layoutOperationContactNameValidate);
	contactCol2Layout.addComponent(contactCol2Row3);
	contactCol2Layout.addComponent(layoutOperationContactPhoneValidate);
	contactCol2Layout.addComponent(contactCol2Row4);
	contactCol2Layout.addComponent(layoutOperationContactMobileValidate);
	contactCol2Layout.addComponent(contactCol2Row5);
	contactCol2Layout.addComponent(layoutOperationContactEmailAddressValidate);
	contactCol2Layout.addComponent(new HorizontalLayout());
	contactCol2Layout.addComponent(contactCol2Row6);
	contactCol2Layout.addComponent(contactCol2Row7);
	contactCol2Layout.addComponent(layoutFinancialContactNameValidate);
	contactCol2Layout.addComponent(contactCol2Row8);
	contactCol2Layout.addComponent(layoutFinancialContactPhoneValidate);
	contactCol2Layout.addComponent(contactCol2Row9);
	contactCol2Layout.addComponent(layoutFinancialContactMobileValidate);
	contactCol2Layout.addComponent(contactCol2Row10);
	contactCol2Layout.addComponent(layoutFinancialContactEmailAddressValidate);

	Label lblSepContactCol = new Label();
	lblSepContactCol.setWidth("40px");

	contactRow.addComponent(contactCol1Layout);
	contactRow.addComponent(lblSepContactCol);
	contactRow.addComponent(contactCol2Layout);

	contactLayout.addComponent(new HorizontalLayout());
	contactLayout.addComponent(contactRow);
	contactLayout.addComponent(new HorizontalLayout());
	contactLayout.setComponentAlignment(contactRow, Alignment.MIDDLE_CENTER);

	commandLayout.addComponent(btnSave);
	commandLayout.addComponent(btnClear);
	commandLayout.addComponent(btnCancel);

	mainLayout.addComponent(merchantInformationPanel);
	mainLayout.addComponent(merchantGroupContactPersonPanel);
	mainLayout.addComponent(new HorizontalLayout());
	mainLayout.addComponent(commandLayout);
	mainLayout.addComponent(new HorizontalLayout());
	mainLayout.setComponentAlignment(merchantInformationPanel, Alignment.MIDDLE_CENTER);
	mainLayout.setComponentAlignment(merchantGroupContactPersonPanel, Alignment.MIDDLE_CENTER);
	mainLayout.setComponentAlignment(commandLayout, Alignment.MIDDLE_CENTER);

	this.addComponent(this.createMerchantProfilePanel);
	this.setComponentAlignment(this.createMerchantProfilePanel, Alignment.TOP_CENTER);
    }

    @Override
    public void initListener() {
	this.createMerchantProfileUploadButtonClickListener.setBasedComponent(this);
	this.createMerchantProfileSaveButtonClickListener.setBasedComponent(this);
	this.createMerchantProfileClearButtonClickListener.setBasedComponent(this);
	this.createMerchantProfileCancelButtonClickListener.setBasedComponent(this);

	this.createMerchantProfileUploadButtonClickListener.setAutoEnabled(true);
	this.createMerchantProfileSaveButtonClickListener.setAutoEnabled(true);
	this.createMerchantProfileClearButtonClickListener.setAutoEnabled(true);
	this.createMerchantProfileCancelButtonClickListener.setAutoEnabled(true);

	this.ulMerchantLogo.setReceiver(createMerchantProfileUploadButtonClickListener);
	this.ulMerchantLogo.addSucceededListener(createMerchantProfileUploadButtonClickListener);
	this.btnSave.addClickListener(this.createMerchantProfileSaveButtonClickListener);
	this.btnClear.addClickListener(this.createMerchantProfileClearButtonClickListener);
	this.btnCancel.addClickListener(this.createMerchantProfileCancelButtonClickListener);
    }

    @Override
    public void initValidator() {

	this.txtMerchantId.setMaxLength(50);
	this.txtMerchantId.setImmediate(true);
	this.txtMerchantId.setRequired(true);
	this.txtMerchantId.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.merchantId.mandatory"));
	RegexpValidator merchantIdRegexpValidator = new RegexpValidator("[A-Za-z0-9]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.merchantId.format"));
	StringLengthValidator merchantIdStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.merchantId.length"), 1, 50, false);
	this.txtMerchantId.addValidator(merchantIdRegexpValidator);
	this.txtMerchantId.addValidator(merchantIdStringLengthValidator);

	this.cbbStatus.setImmediate(true);
	this.cbbStatus.setRequired(true);
	this.cbbStatus.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.merchantStatus.mandatory"));

	this.txtMerchantNameEn.setMaxLength(150);
	this.txtMerchantNameEn.setImmediate(true);
	this.txtMerchantNameEn.setRequired(true);
	this.txtMerchantNameEn.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.merchantNameEn.mandatory"));
	RegexpValidator merchantNameEnRegexpValidator = new RegexpValidator(FormValidatorService.PATTERN_NAME_EN, true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.merchantNameEn.format"));
	StringLengthValidator merchantNameEnStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.merchantNameEn.length"), 1, 150, false);
	this.txtMerchantNameEn.addValidator(merchantNameEnRegexpValidator);
	this.txtMerchantNameEn.addValidator(merchantNameEnStringLengthValidator);

	this.txtMerchantNameTh.setMaxLength(150);
	this.txtMerchantNameTh.setImmediate(true);
	this.txtMerchantNameTh.setRequired(true);
	this.txtMerchantNameTh.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.merchantNameTh.mandatory"));
	RegexpValidator merchantNameThRegexpValidator = new RegexpValidator(FormValidatorService.PATTERN_NAME_TH, true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.merchantNameTh.format"));
	StringLengthValidator merchantNameThStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.merchantNameTh.length"), 1, 150, false);
	this.txtMerchantNameTh.addValidator(merchantNameThRegexpValidator);
	this.txtMerchantNameTh.addValidator(merchantNameThStringLengthValidator);

	this.txtCompanyNameEn.setMaxLength(150);
	this.txtCompanyNameEn.setImmediate(true);
	this.txtCompanyNameEn.setRequired(true);
	this.txtCompanyNameEn.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.companyNameEn.mandatory"));
	RegexpValidator companyNameEnRegexpValidator = new RegexpValidator(FormValidatorService.PATTERN_NAME_EN, true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.companyNameEn.format"));
	StringLengthValidator companyNameEnStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.companyNameEn.length"), 1, 150, false);
	this.txtCompanyNameEn.addValidator(companyNameEnRegexpValidator);
	this.txtCompanyNameEn.addValidator(companyNameEnStringLengthValidator);

	this.txtCompanyNameTh.setMaxLength(150);
	this.txtCompanyNameTh.setImmediate(true);
	this.txtCompanyNameTh.setRequired(true);
	this.txtCompanyNameTh.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.companyNameTh.mandatory"));
	RegexpValidator companyNameThRegexpValidator = new RegexpValidator(FormValidatorService.PATTERN_NAME_TH, true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.companyNameTh.format"));
	StringLengthValidator companyNameThStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.companyNameTh.length"), 1, 150, false);
	this.txtCompanyNameTh.addValidator(companyNameThRegexpValidator);
	this.txtCompanyNameTh.addValidator(companyNameThStringLengthValidator);

	this.cbbMerchantServiceType.setImmediate(true);
	this.cbbMerchantServiceType.setRequired(true);
	this.cbbMerchantServiceType.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.merchantServiceType.mandatory"));

	this.cbbMCCCode.setImmediate(true);

	this.txtStatementName.setMaxLength(150);
	this.txtStatementName.setImmediate(true);
	this.txtStatementName.setRequired(true);
	this.txtStatementName.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.statementName.mandatory"));
	RegexpValidator statementNameRegexpValidator = new RegexpValidator("[\\p{InThai}0-9]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.statementName.format"));
	StringLengthValidator statementNameStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.statementName.length"), 1, 150, false);
	this.txtStatementName.addValidator(statementNameRegexpValidator);
	this.txtStatementName.addValidator(statementNameStringLengthValidator);

	this.txtBusinessRegistrationNumber.setMaxLength(20);
	this.txtBusinessRegistrationNumber.setImmediate(true);
	this.txtBusinessRegistrationNumber.setRequired(true);
	this.txtBusinessRegistrationNumber.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.businessRegistrationNumber.mandatory"));
	RegexpValidator businessRegistrationNumberRegexpValidator = new RegexpValidator("[0-9]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.businessRegistrationNumber.format"));
	StringLengthValidator businessRegistrationNumberStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.businessRegistrationNumber.length"),
		1, 20, false);
	this.txtBusinessRegistrationNumber.addValidator(businessRegistrationNumberRegexpValidator);
	this.txtBusinessRegistrationNumber.addValidator(businessRegistrationNumberStringLengthValidator);

	this.cbbCountryRegion.setImmediate(true);
	this.cbbCountryRegion.setRequired(true);
	this.cbbCountryRegion.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.countryRegion.mandatory"));

	this.cbbCountryDomicile.setImmediate(true);
	this.cbbCountryDomicile.setRequired(true);
	this.cbbCountryDomicile.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.countryDomicile.mandatory"));

	this.txtMailingAddress.setMaxLength(250);
	this.txtMailingAddress.setImmediate(true);
	StringLengthValidator mailingAddressStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.mailingAddress.length"), 1, 250, true);
	this.txtMailingAddress.addValidator(mailingAddressStringLengthValidator);

	this.txtBusinessAddress.setMaxLength(250);
	this.txtBusinessAddress.setImmediate(true);
	this.txtBusinessAddress.setRequired(true);
	this.txtBusinessAddress.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.businessAddress.mandatory"));
	StringLengthValidator businessAddressStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.businessAddress.length"), 1, 250,
		false);
	this.txtBusinessAddress.addValidator(businessAddressStringLengthValidator);

	this.txtFaxNumber.setMaxLength(40);
	this.txtFaxNumber.setImmediate(true);
	RegexpValidator faxNumberRegexpValidator = new RegexpValidator("[0-9-+]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.faxNumber.format"));
	StringLengthValidator txtFaxNumberStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.faxNumber.length"), 1, 40, true);
	this.txtFaxNumber.addValidator(faxNumberRegexpValidator);
	this.txtFaxNumber.addValidator(txtFaxNumberStringLengthValidator);

	this.txtUrl.setImmediate(true);
	this.txtUrl.setRequired(true);
	this.txtUrl.setRequiredError(this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.url.mandatory"));
	RegexpValidator urlRegexpValidator = new RegexpValidator(FormValidatorService.PATTERN_URL, true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.url.format"));
	this.txtUrl.addValidator(urlRegexpValidator);

	this.txtEnquiryNumber.setMaxLength(40);
	this.txtEnquiryNumber.setImmediate(true);
	RegexpValidator enquiryNumberRegexpValidator = new RegexpValidator("[0-9-+]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.enquiryNumber.format"));
	StringLengthValidator enquiryNumberStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.enquiryNumber.length"), 1, 40, true);
	this.txtEnquiryNumber.addValidator(enquiryNumberRegexpValidator);
	this.txtEnquiryNumber.addValidator(enquiryNumberStringLengthValidator);

	this.txtTaxId.setMaxLength(20);
	this.txtTaxId.setImmediate(true);
	this.txtTaxId.setRequired(true);
	this.txtTaxId.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.taxId.mandatory"));
	RegexpValidator taxIdRegexpValidator = new RegexpValidator("[0-9]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.taxId.format"));
	StringLengthValidator taxIdStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.taxId.length"), 1, 20, false);
	this.txtTaxId.addValidator(taxIdRegexpValidator);
	this.txtTaxId.addValidator(taxIdStringLengthValidator);

	// Project
	this.txtProjectContactName.setMaxLength(100);
	this.txtProjectContactName.setImmediate(true);
	this.txtProjectContactName.setRequired(true);
	this.txtProjectContactName.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.projectContactName.mandatory"));
	RegexpValidator projectContactNameRegexpValidator = new RegexpValidator("[A-Za-z\\p{InThai} ]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.projectContactName.format"));
	StringLengthValidator projectContactNameStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.projectContactName.length"), 1, 100,
		false);
	this.txtProjectContactName.addValidator(projectContactNameRegexpValidator);
	this.txtProjectContactName.addValidator(projectContactNameStringLengthValidator);

	this.txtProjectContactPhone.setMaxLength(40);
	this.txtProjectContactPhone.setImmediate(true);
	this.txtProjectContactPhone.setRequired(true);
	this.txtProjectContactPhone.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.projectContactPhone.mandatory"));
	RegexpValidator projectContactPhoneRegexpValidator = new RegexpValidator("[0-9-+]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.projectContactPhone.format"));
	StringLengthValidator projectContactPhoneStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.projectContactPhone.length"), 1, 40,
		false);
	this.txtProjectContactPhone.addValidator(projectContactPhoneRegexpValidator);
	this.txtProjectContactPhone.addValidator(projectContactPhoneStringLengthValidator);

	this.txtProjectContactMobile.setMaxLength(40);
	this.txtProjectContactMobile.setImmediate(true);
	RegexpValidator projectContactMobileRegexpValidator = new RegexpValidator("[0-9-+]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.projectContactMobile.format"));
	StringLengthValidator projectContactMobileStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.projectContactMobile.length"), 1, 40,
		true);
	this.txtProjectContactMobile.addValidator(projectContactMobileRegexpValidator);
	this.txtProjectContactMobile.addValidator(projectContactMobileStringLengthValidator);

	this.txtProjectContactEmailAddress.setImmediate(true);
	this.txtProjectContactEmailAddress.setRequired(true);
	this.txtProjectContactEmailAddress.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.projectContactEmailAddress.mandatory"));
	RegexpValidator projectContactEmailAddressValidator = new RegexpValidator(FormValidatorService.PATTERN_EMAILS, true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.projectContactEmailAddress.format"));
	this.txtProjectContactEmailAddress.addValidator(projectContactEmailAddressValidator);

	// Operation
	this.txtOperationContactName.setMaxLength(100);
	this.txtOperationContactName.setImmediate(true);
	RegexpValidator operationContactNameRegexpValidator = new RegexpValidator("[A-Za-z\\p{InThai} ]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.operationContactName.format"));
	StringLengthValidator operationContactNameStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.operationContactName.length"), 1, 100,
		true);
	this.txtOperationContactName.addValidator(operationContactNameRegexpValidator);
	this.txtOperationContactName.addValidator(operationContactNameStringLengthValidator);

	this.txtOperationContactPhone.setMaxLength(40);
	this.txtOperationContactPhone.setImmediate(true);
	RegexpValidator operationContactPhoneRegexpValidator = new RegexpValidator("[0-9-+]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.operationContactPhone.format"));
	StringLengthValidator operationContactPhoneStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.operationContactPhone.length"), 1, 40,
		true);
	this.txtOperationContactPhone.addValidator(operationContactPhoneRegexpValidator);
	this.txtOperationContactPhone.addValidator(operationContactPhoneStringLengthValidator);

	this.txtOperationContactMobile.setMaxLength(40);
	this.txtOperationContactMobile.setImmediate(true);
	RegexpValidator operationContactMobileRegexpValidator = new RegexpValidator("[0-9-+]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.operationContactMobile.format"));
	StringLengthValidator operationContactMobileStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.operationContactMobile.length"), 1,
		40, true);
	this.txtOperationContactMobile.addValidator(operationContactMobileRegexpValidator);
	this.txtOperationContactMobile.addValidator(operationContactMobileStringLengthValidator);

	this.txtOperationContactEmailAddress.setImmediate(true);
	RegexpValidator operationContactEmailAddressValidator = new RegexpValidator(FormValidatorService.PATTERN_EMAILS, true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.operationContactEmailAddress.format"));
	this.txtOperationContactEmailAddress.addValidator(operationContactEmailAddressValidator);

	// Technical
	this.txtTechnicalContactName.setMaxLength(100);
	this.txtTechnicalContactName.setImmediate(true);
	RegexpValidator technicalContactNameRegexpValidator = new RegexpValidator("[A-Za-z\\p{InThai} ]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.technicalContactName.format"));
	StringLengthValidator technicalContactNameStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.technicalContactName.length"), 1, 100,
		true);
	this.txtTechnicalContactName.addValidator(technicalContactNameRegexpValidator);
	this.txtTechnicalContactName.addValidator(technicalContactNameStringLengthValidator);

	this.txtTechnicalContactPhone.setMaxLength(40);
	this.txtTechnicalContactPhone.setImmediate(true);
	RegexpValidator technicalContactPhoneRegexpValidator = new RegexpValidator("[0-9-+]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.technicalContactPhone.format"));
	StringLengthValidator technicalContactPhoneStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.technicalContactPhone.length"), 1, 40,
		true);
	this.txtTechnicalContactPhone.addValidator(technicalContactPhoneRegexpValidator);
	this.txtTechnicalContactPhone.addValidator(technicalContactPhoneStringLengthValidator);

	this.txtTechnicalContactMobile.setMaxLength(40);
	this.txtTechnicalContactMobile.setImmediate(true);
	RegexpValidator technicalContactMobileRegexpValidator = new RegexpValidator("[0-9-+]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.technicalContactMobile.format"));
	StringLengthValidator technicalContactMobileStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.technicalContactMobile.length"), 1,
		40, true);
	this.txtTechnicalContactMobile.addValidator(technicalContactMobileRegexpValidator);
	this.txtTechnicalContactMobile.addValidator(technicalContactMobileStringLengthValidator);

	this.txtTechnicalContactEmailAddress.setImmediate(true);
	RegexpValidator technicalContactEmailAddressValidator = new RegexpValidator(FormValidatorService.PATTERN_EMAILS, true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.technicalContactEmailAddress.format"));
	this.txtTechnicalContactEmailAddress.addValidator(technicalContactEmailAddressValidator);

	// Financial
	this.txtFinancialContactName.setMaxLength(100);
	this.txtFinancialContactName.setImmediate(true);
	RegexpValidator financialContactNameRegexpValidator = new RegexpValidator("[A-Za-z\\p{InThai} ]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.financialContactName.format"));
	StringLengthValidator financialContactNameStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.financialContactName.length"), 1, 100,
		true);
	this.txtFinancialContactName.addValidator(financialContactNameRegexpValidator);
	this.txtFinancialContactName.addValidator(financialContactNameStringLengthValidator);

	this.txtFinancialContactPhone.setMaxLength(40);
	this.txtFinancialContactPhone.setImmediate(true);
	RegexpValidator financialContactPhoneRegexpValidator = new RegexpValidator("[0-9-+]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.financialContactPhone.format"));
	StringLengthValidator financialContactPhoneStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.financialContactPhone.length"), 1, 40,
		true);
	this.txtFinancialContactPhone.addValidator(financialContactPhoneRegexpValidator);
	this.txtFinancialContactPhone.addValidator(financialContactPhoneStringLengthValidator);

	this.txtFinancialContactMobile.setMaxLength(40);
	this.txtFinancialContactMobile.setImmediate(true);
	RegexpValidator financialContactMobileRegexpValidator = new RegexpValidator("[0-9-+]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.financialContactName.format"));
	StringLengthValidator financialContactMobileStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.financialContactName.length"), 1, 40,
		true);
	this.txtFinancialContactMobile.addValidator(financialContactMobileRegexpValidator);
	this.txtFinancialContactMobile.addValidator(financialContactMobileStringLengthValidator);

	this.txtFinancialContactEmailAddress.setImmediate(true);
	RegexpValidator financialContactEmailAddressValidator = new RegexpValidator(FormValidatorService.PATTERN_EMAILS, true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.CreateMerchantProfileView.message.financialContactEmailAddress.format"));
	this.txtFinancialContactEmailAddress.addValidator(financialContactEmailAddressValidator);
    }

    @Override
    public void initData() {
	try {

	    List<String> excludeStatus = Arrays.asList(new String[] {
		    propertyBAO.getPropertyValue("com.fw.ui.view.profile.CreateMerchantProfileView.exclude.status.item.inactive"),
		    propertyBAO.getPropertyValue("com.fw.ui.view.profile.CreateMerchantProfileView.exclude.status.item.closed") });
	    List<EntryBean<String, String>> masterData = masterDataBAO.selectAllMerchantProfileStatus();
	    if (masterData != null && !masterData.isEmpty()) {
		for (EntryBean<String, String> entry : masterData) {
		    if (!excludeStatus.contains(entry.getKey())) {
			this.cbbStatus.addItem(entry.getKey());
			this.cbbStatus.setItemCaption(entry.getKey(), entry.getValue());
		    }
		}
	    }

	    masterData = masterDataBAO.selectAllMerchantProfileServiceType();
	    if (masterData != null && !masterData.isEmpty()) {
		for (EntryBean<String, String> entry : masterData) {
		    this.cbbMerchantServiceType.addItem(entry.getKey());
		    this.cbbMerchantServiceType.setItemCaption(entry.getKey(), entry.getValue());
		}
	    }

	    masterData = masterDataBAO.selectAllMerchantProfileMccCode();
	    if (masterData != null && !masterData.isEmpty()) {
		for (EntryBean<String, String> entry : masterData) {
		    this.cbbMCCCode.addItem(entry.getKey());
		    this.cbbMCCCode.setItemCaption(entry.getKey(), entry.getValue());
		}
	    }

	    masterData = masterDataBAO.selectAllCountry();
	    if (masterData != null && !masterData.isEmpty()) {
		for (EntryBean<String, String> entry : masterData) {
		    this.cbbCountryDomicile.addItem(entry.getKey());
		    this.cbbCountryDomicile.setItemCaption(entry.getKey(), entry.getValue());

		    this.cbbCountryRegion.addItem(entry.getKey());
		    this.cbbCountryRegion.setItemCaption(entry.getKey(), entry.getValue());
		}
	    }
	} catch (Exception e) {
	    e.printStackTrace();
	}
    }

    public static long getSerialversionuid() {
	return serialVersionUID;
    }

    public VaadinApplicationObjectSupport getApp() {
	return app;
    }

    public MasterDataBAO getMasterDataBAO() {
	return masterDataBAO;
    }

    public MessageBAO getMessageBAO() {
	return messageBAO;
    }

    public MerchantProfileBean getMerchantProfileBean() {
	return MerchantProfileBean;
    }

    public CreateMerchantProfileSaveButtonClickListener getCreateMerchantProfileSaveButtonClickListener() {
	return createMerchantProfileSaveButtonClickListener;
    }

    public CreateMerchantProfileClearButtonClickListener getCreateMerchantProfileClearButtonClickListener() {
	return createMerchantProfileClearButtonClickListener;
    }

    public CreateMerchantProfileCancelButtonClickListener getCreateMerchantProfileCancelButtonClickListener() {
	return createMerchantProfileCancelButtonClickListener;
    }

    public Panel getCreateMerchantProfilePanel() {
	return createMerchantProfilePanel;
    }

    public Panel getMerchantInformationPanel() {
	return merchantInformationPanel;
    }

    public Panel getMerchantGroupContactPersonPanel() {
	return merchantGroupContactPersonPanel;
    }

    public Label getLblMerchantLogoHint() {
	return lblMerchantLogoHint;
    }

    public Label getLblMerchantLogo() {
	return lblMerchantLogo;
    }

    public Label getLblMerchantId() {
	return lblMerchantId;
    }

    public Label getLblStatus() {
	return lblStatus;
    }

    public Label getLblMerchantNameEn() {
	return lblMerchantNameEn;
    }

    public Label getLblCompanyNameEn() {
	return lblCompanyNameEn;
    }

    public Label getLblMerchantNameTh() {
	return lblMerchantNameTh;
    }

    public Label getLblCompanyNameTh() {
	return lblCompanyNameTh;
    }

    public Label getLblMerchantServiceType() {
	return lblMerchantServiceType;
    }

    public Label getLblMCCCode() {
	return lblMCCCode;
    }

    public Label getLblStatementName() {
	return lblStatementName;
    }

    public Label getLblBusinessRegistrationNumber() {
	return lblBusinessRegistrationNumber;
    }

    public Label getLblCountryRegion() {
	return lblCountryRegion;
    }

    public Label getLblCountryDomicile() {
	return lblCountryDomicile;
    }

    public Label getLblMailingAddress() {
	return lblMailingAddress;
    }

    public Label getLblBusinessAddress() {
	return lblBusinessAddress;
    }

    public Label getLblFaxNumber() {
	return lblFaxNumber;
    }

    public Label getLblUrl() {
	return lblUrl;
    }

    public Label getLblEnquiryNumber() {
	return lblEnquiryNumber;
    }

    public Label getLblTaxId() {
	return lblTaxId;
    }

    public Label getLblIsTestMerchant() {
	return lblIsTestMerchant;
    }

    public Label getLblProjectTitle() {
	return lblProjectTitle;
    }

    public Label getLblProjectContactName() {
	return lblProjectContactName;
    }

    public Label getLblProjectContactEmailAddress() {
	return lblProjectContactEmailAddress;
    }

    public Label getLblProjectContactPhone() {
	return lblProjectContactPhone;
    }

    public Label getLblProjectContactMobile() {
	return lblProjectContactMobile;
    }

    public Label getLblOperationTitle() {
	return lblOperationTitle;
    }

    public Label getLblOperationContactName() {
	return lblOperationContactName;
    }

    public Label getLblOperationContactEmailAddress() {
	return lblOperationContactEmailAddress;
    }

    public Label getLblOperationContactPhone() {
	return lblOperationContactPhone;
    }

    public Label getLblOperationContactMobile() {
	return lblOperationContactMobile;
    }

    public Label getLblTechnicalTitle() {
	return lblTechnicalTitle;
    }

    public Label getLblTechnicalContactName() {
	return lblTechnicalContactName;
    }

    public Label getLblTechnicalContactEmailAddress() {
	return lblTechnicalContactEmailAddress;
    }

    public Label getLblTechnicalContactPhone() {
	return lblTechnicalContactPhone;
    }

    public Label getLblTechnicalContactMobile() {
	return lblTechnicalContactMobile;
    }

    public Label getLblFinancialTitle() {
	return lblFinancialTitle;
    }

    public Label getLblFinancialContactName() {
	return lblFinancialContactName;
    }

    public Label getLblFinancialContactEmailAddress() {
	return lblFinancialContactEmailAddress;
    }

    public Label getLblFinancialContactPhone() {
	return lblFinancialContactPhone;
    }

    public Label getLblFinancialContactMobile() {
	return lblFinancialContactMobile;
    }

    public Image getImgMerchantLogo() {
	return imgMerchantLogo;
    }

    public Upload getUlMerchantLogo() {
	return ulMerchantLogo;
    }

    public TextField getTxtMerchantId() {
	return txtMerchantId;
    }

    public ComboBox getCbbStatus() {
	return cbbStatus;
    }

    public TextField getTxtMerchantNameEn() {
	return txtMerchantNameEn;
    }

    public TextField getTxtCompanyNameEn() {
	return txtCompanyNameEn;
    }

    public TextField getTxtMerchantNameTh() {
	return txtMerchantNameTh;
    }

    public TextField getTxtCompanyNameTh() {
	return txtCompanyNameTh;
    }

    public ComboBox getCbbMerchantServiceType() {
	return cbbMerchantServiceType;
    }

    public ComboBox getCbbMCCCode() {
	return cbbMCCCode;
    }

    public TextField getTxtStatementName() {
	return txtStatementName;
    }

    public TextField getTxtBusinessRegistrationNumber() {
	return txtBusinessRegistrationNumber;
    }

    public ComboBox getCbbCountryRegion() {
	return cbbCountryRegion;
    }

    public ComboBox getCbbCountryDomicile() {
	return cbbCountryDomicile;
    }

    public TextField getTxtMailingAddress() {
	return txtMailingAddress;
    }

    public TextField getTxtBusinessAddress() {
	return txtBusinessAddress;
    }

    public TextField getTxtFaxNumber() {
	return txtFaxNumber;
    }

    public TextField getTxtUrl() {
	return txtUrl;
    }

    public TextField getTxtEnquiryNumber() {
	return txtEnquiryNumber;
    }

    public TextField getTxtTaxId() {
	return txtTaxId;
    }

    public CheckBox getCbIsTestMerchant() {
	return cbIsTestMerchant;
    }

    public TextField getTxtProjectContactName() {
	return txtProjectContactName;
    }

    public TextArea getTxtProjectContactEmailAddress() {
	return txtProjectContactEmailAddress;
    }

    public TextField getTxtProjectContactPhone() {
	return txtProjectContactPhone;
    }

    public TextField getTxtProjectContactMobile() {
	return txtProjectContactMobile;
    }

    public TextField getTxtOperationContactName() {
	return txtOperationContactName;
    }

    public TextArea getTxtOperationContactEmailAddress() {
	return txtOperationContactEmailAddress;
    }

    public TextField getTxtOperationContactPhone() {
	return txtOperationContactPhone;
    }

    public TextField getTxtOperationContactMobile() {
	return txtOperationContactMobile;
    }

    public TextField getTxtTechnicalContactName() {
	return txtTechnicalContactName;
    }

    public TextArea getTxtTechnicalContactEmailAddress() {
	return txtTechnicalContactEmailAddress;
    }

    public TextField getTxtTechnicalContactPhone() {
	return txtTechnicalContactPhone;
    }

    public TextField getTxtTechnicalContactMobile() {
	return txtTechnicalContactMobile;
    }

    public TextField getTxtFinancialContactName() {
	return txtFinancialContactName;
    }

    public TextArea getTxtFinancialContactEmailAddress() {
	return txtFinancialContactEmailAddress;
    }

    public TextField getTxtFinancialContactPhone() {
	return txtFinancialContactPhone;
    }

    public TextField getTxtFinancialContactMobile() {
	return txtFinancialContactMobile;
    }

    public Label getLblMerchantLogoValidateMessage() {
	return lblMerchantLogoValidateMessage;
    }

    public Label getLblMerchantIdValidateMessage() {
	return lblMerchantIdValidateMessage;
    }

    public Label getLblStatusValidateMessage() {
	return lblStatusValidateMessage;
    }

    public Label getLblMerchantNameValidateMessageEn() {
	return lblMerchantNameValidateMessageEn;
    }

    public Label getLblCompanyNameValidateMessageEn() {
	return lblCompanyNameValidateMessageEn;
    }

    public Label getLblMerchantNameValidateMessageTh() {
	return lblMerchantNameValidateMessageTh;
    }

    public Label getLblCompanyNameValidateMessageTh() {
	return lblCompanyNameValidateMessageTh;
    }

    public Label getLblMerchantServiceTypeValidateMessage() {
	return lblMerchantServiceTypeValidateMessage;
    }

    public Label getLblMCCCodeValidateMessage() {
	return lblMCCCodeValidateMessage;
    }

    public Label getLblStatementNameValidateMessage() {
	return lblStatementNameValidateMessage;
    }

    public Label getLblBusinessRegistrationNumberValidateMessage() {
	return lblBusinessRegistrationNumberValidateMessage;
    }

    public Label getLblCountryRegionValidateMessage() {
	return lblCountryRegionValidateMessage;
    }

    public Label getLblCountryDomicileValidateMessage() {
	return lblCountryDomicileValidateMessage;
    }

    public Label getLblMailingAddressValidateMessage() {
	return lblMailingAddressValidateMessage;
    }

    public Label getLblBusinessAddressValidateMessage() {
	return lblBusinessAddressValidateMessage;
    }

    public Label getLblFaxNumberValidateMessage() {
	return lblFaxNumberValidateMessage;
    }

    public Label getLblUrlValidateMessage() {
	return lblUrlValidateMessage;
    }

    public Label getLblEnquiryNumberValidateMessage() {
	return lblEnquiryNumberValidateMessage;
    }

    public Label getLblTaxIdValidateMessage() {
	return lblTaxIdValidateMessage;
    }

    public Label getLblIsTestMerchantValidateMessage() {
	return lblIsTestMerchantValidateMessage;
    }

    public Label getLblProjectContactNameValidateMessage() {
	return lblProjectContactNameValidateMessage;
    }

    public Label getLblProjectContactEmailAddressValidateMessage() {
	return lblProjectContactEmailAddressValidateMessage;
    }

    public Label getLblProjectContactPhoneValidateMessage() {
	return lblProjectContactPhoneValidateMessage;
    }

    public Label getLblProjectContactMobileValidateMessage() {
	return lblProjectContactMobileValidateMessage;
    }

    public Label getLblOperationContactNameValidateMessage() {
	return lblOperationContactNameValidateMessage;
    }

    public Label getLblOperationContactEmailAddressValidateMessage() {
	return lblOperationContactEmailAddressValidateMessage;
    }

    public Label getLblOperationContactPhoneValidateMessage() {
	return lblOperationContactPhoneValidateMessage;
    }

    public Label getLblOperationContactMobileValidateMessage() {
	return lblOperationContactMobileValidateMessage;
    }

    public Label getLblTechnicalContactNameValidateMessage() {
	return lblTechnicalContactNameValidateMessage;
    }

    public Label getLblTechnicalContactEmailAddressValidateMessage() {
	return lblTechnicalContactEmailAddressValidateMessage;
    }

    public Label getLblTechnicalContactPhoneValidateMessage() {
	return lblTechnicalContactPhoneValidateMessage;
    }

    public Label getLblTechnicalContactMobileValidateMessage() {
	return lblTechnicalContactMobileValidateMessage;
    }

    public Label getLblFinancialContactNameValidateMessage() {
	return lblFinancialContactNameValidateMessage;
    }

    public Label getLblFinancialContactEmailAddressValidateMessage() {
	return lblFinancialContactEmailAddressValidateMessage;
    }

    public Label getLblFinancialContactPhoneValidateMessage() {
	return lblFinancialContactPhoneValidateMessage;
    }

    public Label getLblFinancialContactMobileValidateMessage() {
	return lblFinancialContactMobileValidateMessage;
    }

    public HorizontalLayout getLayoutLogo() {
	return layoutLogo;
    }

    public HorizontalLayout getLayoutLogoValidate() {
	return layoutLogoValidate;
    }

    public HorizontalLayout getLayoutMerchantIdValidate() {
	return layoutMerchantIdValidate;
    }

    public HorizontalLayout getLayoutStatusValidate() {
	return layoutStatusValidate;
    }

    public HorizontalLayout getLayoutMerchantNameValidateEn() {
	return layoutMerchantNameValidateEn;
    }

    public HorizontalLayout getLayoutCompanyNameValidateEn() {
	return layoutCompanyNameValidateEn;
    }

    public HorizontalLayout getLayoutMerchantNameValidateTh() {
	return layoutMerchantNameValidateTh;
    }

    public HorizontalLayout getLayoutCompanyNameValidateTh() {
	return layoutCompanyNameValidateTh;
    }

    public HorizontalLayout getLayoutMerchantServiceTypeValidate() {
	return layoutMerchantServiceTypeValidate;
    }

    public HorizontalLayout getLayoutMCCCodeValidate() {
	return layoutMCCCodeValidate;
    }

    public HorizontalLayout getLayoutStatementNameValidate() {
	return layoutStatementNameValidate;
    }

    public HorizontalLayout getLayoutBusinessRegistrationNumberValidate() {
	return layoutBusinessRegistrationNumberValidate;
    }

    public HorizontalLayout getLayoutCountryRegionValidate() {
	return layoutCountryRegionValidate;
    }

    public HorizontalLayout getLayoutCountryDomicileValidate() {
	return layoutCountryDomicileValidate;
    }

    public HorizontalLayout getLayoutMailingAddressValidate() {
	return layoutMailingAddressValidate;
    }

    public HorizontalLayout getLayoutBusinessAddressValidate() {
	return layoutBusinessAddressValidate;
    }

    public HorizontalLayout getLayoutFaxNumberValidate() {
	return layoutFaxNumberValidate;
    }

    public HorizontalLayout getLayoutUrlValidate() {
	return layoutUrlValidate;
    }

    public HorizontalLayout getLayoutEnquiryNumberValidate() {
	return layoutEnquiryNumberValidate;
    }

    public HorizontalLayout getLayoutTaxIdValidate() {
	return layoutTaxIdValidate;
    }

    public HorizontalLayout getLayoutIsTestMerchantValidate() {
	return layoutIsTestMerchantValidate;
    }

    public HorizontalLayout getLayoutProjectContactNameValidate() {
	return layoutProjectContactNameValidate;
    }

    public HorizontalLayout getLayoutProjectContactEmailAddressValidate() {
	return layoutProjectContactEmailAddressValidate;
    }

    public HorizontalLayout getLayoutProjectContactPhoneValidate() {
	return layoutProjectContactPhoneValidate;
    }

    public HorizontalLayout getLayoutProjectContactMobileValidate() {
	return layoutProjectContactMobileValidate;
    }

    public HorizontalLayout getLayoutOperationContactNameValidate() {
	return layoutOperationContactNameValidate;
    }

    public HorizontalLayout getLayoutOperationContactEmailAddressValidate() {
	return layoutOperationContactEmailAddressValidate;
    }

    public HorizontalLayout getLayoutOperationContactPhoneValidate() {
	return layoutOperationContactPhoneValidate;
    }

    public HorizontalLayout getLayoutOperationContactMobileValidate() {
	return layoutOperationContactMobileValidate;
    }

    public HorizontalLayout getLayoutTechnicalContactNameValidate() {
	return layoutTechnicalContactNameValidate;
    }

    public HorizontalLayout getLayoutTechnicalContactEmailAddressValidate() {
	return layoutTechnicalContactEmailAddressValidate;
    }

    public HorizontalLayout getLayoutTechnicalContactPhoneValidate() {
	return layoutTechnicalContactPhoneValidate;
    }

    public HorizontalLayout getLayoutTechnicalContactMobileValidate() {
	return layoutTechnicalContactMobileValidate;
    }

    public HorizontalLayout getLayoutFinancialContactNameValidate() {
	return layoutFinancialContactNameValidate;
    }

    public HorizontalLayout getLayoutFinancialContactEmailAddressValidate() {
	return layoutFinancialContactEmailAddressValidate;
    }

    public HorizontalLayout getLayoutFinancialContactPhoneValidate() {
	return layoutFinancialContactPhoneValidate;
    }

    public HorizontalLayout getLayoutFinancialContactMobileValidate() {
	return layoutFinancialContactMobileValidate;
    }

    public Button getBtnSave() {
	return btnSave;
    }

    public Button getBtnClear() {
	return btnClear;
    }

    public Button getBtnCancel() {
	return btnCancel;
    }

    public void setMerchantProfileBean(MerchantProfileBean merchantProfileBean) {
	MerchantProfileBean = merchantProfileBean;
    }

}
